Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
sipeka
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Siti Aisah
sipeka
Commits
679f4249
Commit
679f4249
authored
May 16, 2024
by
Triyah Fatmawati
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CRUD Master User
parent
1dfe0c6e
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
326 additions
and
7 deletions
+326
-7
app/Http/Controllers/Admin/KategoriController.php
+6
-2
app/Http/Controllers/Admin/UserController.php
+120
-1
app/Http/Support/ValidationRule.php
+1
-0
app/Models/Admin/User.php
+12
-0
resources/views/Admin/Kategori/index.blade.php
+3
-3
resources/views/Admin/User/index.blade.php
+181
-0
resources/views/layouts/menu.blade.php
+1
-1
routes/web.php
+2
-0
No files found.
app/Http/Controllers/Admin/KategoriController.php
View file @
679f4249
...
...
@@ -70,6 +70,8 @@ public function update(Request $request, $id){
DB
::
beginTransaction
();
try
{
$id
=
decrypt
(
$id
);
$kategori
=
[
'kode_kategori'
=>
strip_tags
(
$request
->
kodekategori
),
'nama_kategori'
=>
strip_tags
(
$request
->
namakategori
),
...
...
@@ -94,6 +96,8 @@ public function update(Request $request, $id){
}
public
function
destroy
(
$id
)
{
$id
=
decrypt
(
$id
);
DB
::
beginTransaction
();
try
{
...
...
@@ -102,14 +106,14 @@ public function destroy($id) {
DB
::
commit
();
return
Redirect
::
route
(
'kategori.index'
)
->
with
(
'success'
,
'Data kategori berhasil di
update
'
);
->
with
(
'success'
,
'Data kategori berhasil di
hapus
'
);
}
catch
(
Exception
$e
){
Log
::
error
(
$e
);
DB
::
rollBack
();
return
Redirect
::
route
(
'kategori.index'
)
->
with
(
'error'
,
'Data kategori gagal di
update
'
);
->
with
(
'error'
,
'Data kategori gagal di
hapus
'
);
}
}
}
app/Http/Controllers/Admin/UserController.php
View file @
679f4249
...
...
@@ -3,9 +3,128 @@
namespace
App\Http\Controllers\Admin
;
use
App\Http\Controllers\Controller
;
use
App\Http\Support\ValidationRule
;
use
App\Models\Admin\User
;
use
Exception
;
use
Illuminate\Http\Request
;
use
Illuminate\Support\Facades\DB
;
use
Illuminate\Support\Facades\Hash
;
use
Illuminate\Support\Facades\Log
;
use
Illuminate\Support\Facades\Redirect
;
class
UserController
extends
Controller
{
//
public
function
index
(){
$user
=
User
::
query
()
->
get
();
$data
=
[
'user'
=>
$user
];
return
view
(
'Admin.User.index'
,
$data
);
}
public
function
store
(
Request
$request
){
$rule
=
[
'name'
=>
'required|string'
,
'email'
=>
'required|email:rfc,dns'
,
'password'
=>
'required|regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$/|min:8'
,
];
$request
->
validate
(
$rule
,
ValidationRule
::
getErrorMessage
(
$rule
));
DB
::
beginTransaction
();
try
{
$user
=
[
'name'
=>
strip_tags
(
$request
->
name
),
'email'
=>
strip_tags
(
$request
->
email
),
'password'
=>
strip_tags
(
$request
->
password
),
];
User
::
query
()
->
create
(
$user
);
DB
::
commit
();
return
Redirect
::
route
(
'user.index'
)
->
with
(
'success'
,
'User berhasil ditambahkan'
);
}
catch
(
Exception
$e
){
Log
::
error
(
$e
);
DB
::
rollBack
();
return
Redirect
::
route
(
'user.index'
)
->
with
(
'error'
,
'User gagal ditambahkan'
);
}
}
public
function
update
(
Request
$request
,
$id
){
$rule
=
[
'name'
=>
'required|string'
,
'email'
=>
'required|email:rfc,dns'
,
'passwordbaru'
=>
'required|regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$/|min:8'
,
'passwordlama'
=>
'required|string'
];
$request
->
validate
(
$rule
,
ValidationRule
::
getErrorMessage
(
$rule
));
DB
::
beginTransaction
();
try
{
$id
=
decrypt
(
$id
);
$passwordbaru
=
Hash
::
make
(
strip_tags
(
$request
->
passwordbaru
));
$passwordlama
=
strip_tags
(
$request
->
passwordlama
);
$oldpassword
=
User
::
where
(
'id'
,
$id
)
->
first
();
// if (Hash::check($passwordlama, $oldpassword->password)) {
// // Passwords match
$user
=
[
'name'
=>
strip_tags
(
$request
->
name
),
'email'
=>
strip_tags
(
$request
->
email
),
'password'
=>
$passwordbaru
];
User
::
where
(
'id'
,
$id
)
->
update
(
$user
);
DB
::
commit
();
return
Redirect
::
route
(
'user.index'
)
->
with
(
'success'
,
'User berhasil diupdate'
);
// } else {
// // Passwords do not match
// return Redirect::route('user.index')
// ->with('error', 'Password lama tidak valid');
// }
}
catch
(
Exception
$e
){
dd
(
$e
);
Log
::
error
(
$e
);
DB
::
rollBack
();
return
Redirect
::
route
(
'user.index'
)
->
with
(
'error'
,
'User gagal diupdate'
);
}
}
public
function
destroy
(
$id
)
{
$id
=
decrypt
(
$id
);
DB
::
beginTransaction
();
try
{
User
::
where
(
'id'
,
$id
)
->
delete
();
DB
::
commit
();
return
Redirect
::
route
(
'user.index'
)
->
with
(
'success'
,
'User berhasil dihapus'
);
}
catch
(
Exception
$e
){
Log
::
error
(
$e
);
DB
::
rollBack
();
return
Redirect
::
route
(
'user.index'
)
->
with
(
'error'
,
'User gagal dihapus'
);
}
}
}
app/Http/Support/ValidationRule.php
View file @
679f4249
...
...
@@ -15,6 +15,7 @@ class ValidationRule{
'min'
=>
'tidak boleh kurang dari'
,
'before_or_equal'
=>
'maksimal hari ini'
,
'after_or_equal'
=>
'minimal hari ini'
,
'regex'
=>
'harus kombinasi huruf kapital, huruf kecil, angka, dan karakter'
];
public
static
function
getErrorMessage
(
$validationRules
)
{
...
...
app/Models/Admin/User.php
View file @
679f4249
...
...
@@ -8,4 +8,16 @@
class
User
extends
Model
{
use
HasFactory
;
public
$incrementing
=
false
;
protected
$table
=
'users'
;
protected
$keyType
=
'string'
;
protected
$fillable
=
[
'id'
,
'name'
,
'email'
,
'password'
,
];
}
resources/views/Admin/Kategori/index.blade.php
View file @
679f4249
...
...
@@ -55,7 +55,7 @@
<
div
class
="
modal
fade
" id="
editKategoriModal
{{
$kat
->
id
}}
" tabindex="
-
1
" aria-labelledby="
tambahAntrian
" aria-hidden="
true
">
<div class="
modal
-
dialog
modal
-
dialog
-
centered
" role="
document
">
<div class="
modal
-
content
">
<form method="
POST
" action="
{{
route
(
'kategori.update'
,
[
'kategori'
=>
$kat
->
id
])
}}
" enctype="
multipart
/
form
-
data
" id="
registrasi
">
<form method="
POST
" action="
{{
route
(
'kategori.update'
,
[
'kategori'
=>
encrypt
(
$kat
->
id
)
])
}}
" enctype="
multipart
/
form
-
data
" id="
registrasi
">
@method('PUT')
@csrf
<div class="
modal
-
header
">
...
...
@@ -108,7 +108,7 @@
<div class="
modal
fade
" id="
deleteKategoriModal
{{
$kat
->
id
}}
" tabindex="
-
1
" aria-labelledby="
tambahAntrian
" aria-hidden="
true
">
<div class="
modal
-
dialog
modal
-
dialog
-
centered
" role="
document
">
<div class="
modal
-
content
">
<form method="
POST
" action="
{{
route
(
'kategori.destroy'
,
[
'kategori'
=>
$kat
->
id
])
}}
" enctype="
multipart
/
form
-
data
">
<form method="
POST
" action="
{{
route
(
'kategori.destroy'
,
[
'kategori'
=>
encrypt
(
$kat
->
id
)
])
}}
" enctype="
multipart
/
form
-
data
">
@csrf
@method("
DELETE
")
<div class="
modal
-
header
">
...
...
@@ -120,7 +120,7 @@
</div>
<div class="
form
-
group
" style="
text
-
align
:
center
">
<button type="
submit
" class="
btn
btn
-
primary
ml
-
1
">Delete</button>
<button type="
button
" class="
btn
btn
-
light
-
secondary
" data-dismiss="
modal
">Cancel</button>
<button type="
reset
" class="
btn
btn
-
outline
-
secondary
" data-bs-dismiss="
modal
" aria-label="
Close
">Cancel</button>
</div>
</div>
</form>
...
...
resources/views/Admin/User/index.blade.php
0 → 100644
View file @
679f4249
@
extends
(
'layouts.master'
)
@
section
(
'content'
)
<
div
class
="
container
-
xxl
flex
-
grow
-
1
container
-
p
-
y
">
<div class="
card
">
<div class="
row
layout
-
top
-
spacing
" id="
cancel
-
row
">
<h5 class="
card
-
header
" style="
padding
-
left
:
35
px
">Daftar User</h5>
<div class="
card
-
body
">
<div class="
row
">
<div class="
col
-
md
-
3
" style="
padding
-
left
:
30
px
">
<button type="
button
" class="
btn
btn
-
primary
text
-
right
" data-bs-toggle="
modal
" data-bs-target="
#addNewUserModal" >
Tambah
User
Admin
</
button
>
</
div
>
</
div
>
</
div
>
<
div
class
="
card
-
body
">
<div class="
table
-
responsive
text
-
nowrap
">
<table class="
table
">
<thead class="
table
-
light
" align="
center
">
<tr>
<th>No.</th>
<th>Nama</th>
<th>Email</th>
<th>Aksi</th>
</tr>
</thead>
<tbody class="
table
-
border
-
bottom
-
0
">
@php
$no
= 1;
@endphp
@foreach (
$user
as
$data
)
<tr style="
text
-
align
:
center
">
<td>{{
$no
}}</td>
<td>{{
$data->name
}}</td>
<td>{{
$data->email
}}</td>
<td>
<button type="
button
" class="
btn
btn
-
primary
btn
-
sm
" data-bs-toggle="
modal
" data-bs-target="
#editUserModal{{$data->id}}">Edit</button>
<
button
type
=
"button"
class
="
btn
btn
-
danger
btn
-
sm
" data-bs-toggle="
modal
" data-bs-target="
#deleteUserModal{{$data->id}}">Hapus</button>
</
td
>
</
tr
>
<!--
Modal
Update
User
-->
<
div
class
="
modal
fade
" id="
editUserModal
{{
$data
->
id
}}
" tabindex="
-
1
" aria-labelledby="
tambahAntrian
" aria-hidden="
true
">
<div class="
modal
-
dialog
modal
-
dialog
-
centered
" role="
document
">
<div class="
modal
-
content
">
<form method="
POST
" action="
{{
route
(
'user.update'
,
[
'user'
=>
encrypt
(
$data
->
id
)])
}}
" enctype="
multipart
/
form
-
data
" id="
registrasi
">
@method('PUT')
@csrf
<div class="
modal
-
header
">
<h1 class="
address
-
title
text
-
center
mb
-
1
" id="
addNewUserTitle
">Edit User</h1>
</div>
<div class="
modal
-
body
">
<div class="
row
">
<div class="
col
-
md
-
12
">
<label class="
form
-
label
" for="
name
">Nama</label>
<input type="
text
" class="
form
-
control
" id="
name
" name="
name
" placeholder="
Nama
" data-msg="
Masukkan
Nama
" value="
{{
$data
->
name
}}
" required />
@if (
$errors->has
('name'))
<label id="
login
-
error
" class="
error
" for="
name
" style="
color
:
red
">
{
{$errors->first('name')}
}
</label>
@endif
</div>
<div class="
col
-
md
-
12
">
<label class="
form
-
label
" for="
email
">Email</label>
<input type="
email
" id="
email
" name="
email
" class="
form
-
control
" placeholder="
Email
" data-msg="
Masukkan
Email
" value="
{{
$data
->
email
}}
" required />
@if (
$errors->has
('email'))
<label id="
login
-
error
" class="
error
" for="
email
" style="
color
:
red
">
{
{$errors->first('email')}
}
</label>
@endif
</div>
</div>
<hr>
<div class="
row
">
<div class="
col
-
md
-
12
">
<label class="
form
-
label
" for="
passwordlama
">Password Lama</label>
<input type="
password
" id="
passwordlama
" name="
passwordlama
" class="
form
-
control
" placeholder="
Password
Lama
" data-msg="
Masukkan
Password
Lama
" required />
@if (
$errors->has
('passwordlama'))
<label id="
login
-
error
" class="
error
" for="
passwordlama
" style="
color
:
red
">
{
{$errors->first('passwordlama')}
}
</label>
@endif
</div>
<div class="
col
-
md
-
12
">
<label class="
form
-
label
" for="
passwordbaru
">Password Baru</label>
<input type="
password
" id="
passwordbaru
" name="
passwordbaru
" class="
form
-
control
" placeholder="
Password
Baru
" data-msg="
Masukkan
Password
Baru
" required />
@if (
$errors->has
('passwordbaru'))
<label id="
login
-
error
" class="
error
" for="
passwordbaru
" style="
color
:
red
">
{
{$errors->first('passwordbaru')}
}
</label>
@endif
</div>
</div>
</div>
<div class="
modal
-
footer
">
<button type="
submit
" class="
btn
btn
-
primary
">Submit</button>
<button type="
reset
" class="
btn
btn
-
outline
-
secondary
" data-bs-dismiss="
modal
" aria-label="
Close
">Cancel</button>
</div>
</form>
</div>
</div>
</div>
<!-- End Modal Update User -->
<!-- Modal Delete User -->
<div class="
modal
fade
" id="
deleteUserModal
{{
$data
->
id
}}
" tabindex="
-
1
" aria-labelledby="
tambahAntrian
" aria-hidden="
true
">
<div class="
modal
-
dialog
modal
-
dialog
-
centered
" role="
document
">
<div class="
modal
-
content
">
<form method="
POST
" action="
{{
route
(
'user.destroy'
,
[
'user'
=>
encrypt
(
$data
->
id
)
])
}}
" enctype="
multipart
/
form
-
data
">
@csrf
@method("
DELETE
")
<div class="
modal
-
header
">
<h1 class="
address
-
title
text
-
center
mb
-
1
" id="
addNewUserTitle
">Hapus User</h1>
</div>
<div class="
modal
-
body
">
<div class="
form
-
group
" style="
text
-
align
:
center
">
<h5 class="
address
-
title
text
-
center
mb
-
3
mt
-
1
" id="
addNewAddressTitle
">Apakah anda yakin ingin menghapus User ini?</h5>
</div>
<div class="
form
-
group
" style="
text
-
align
:
center
">
<button type="
submit
" class="
btn
btn
-
primary
ml
-
1
">Delete</button>
<button type="
reset
" class="
btn
btn
-
outline
-
secondary
" data-bs-dismiss="
modal
" aria-label="
Close
">Cancel</button>
</div>
</div>
</form>
</div>
</div>
</div>
<!-- End Modal Delete User -->
@php
$no
++;
@endphp
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- Modal Tambah User -->
<div class="
modal
fade
" id="
addNewUserModal
" tabindex="
-
1
" aria-labelledby="
tambahAntrian
" aria-hidden="
true
">
<div class="
modal
-
dialog
modal
-
dialog
-
centered
" role="
document
">
<div class="
modal
-
content
">
<form method="
POST
" action="
{{
route
(
'user.store'
)
}}
" enctype="
multipart
/
form
-
data
" id="
registrasi
">
@csrf
<div class="
modal
-
header
">
<h1 class="
address
-
title
text
-
center
mb
-
1
" id="
addNewUserTitle
">Tambah User</h1>
</div>
<div class="
modal
-
body
">
<div class="
row
">
<div class="
col
-
md
-
12
">
<label class="
form
-
label
" for="
name
">Nama</label>
<input type="
text
" class="
form
-
control
" id="
name
" name="
name
" placeholder="
Nama
" data-msg="
Masukkan
Nama
" value="" required />
@if (
$errors->has
('name'))
<label id="
login
-
error
" class="
error
" for="
name
" style="
color
:
red
">
{
{$errors->first('name')}
}
</label>
@endif
</div>
<div class="
col
-
md
-
12
">
<label class="
form
-
label
" for="
email
">Email</label>
<input type="
email
" id="
email
" name="
email
" class="
form
-
control
" placeholder="
Email
" data-msg="
Masukkan
Email
" value="" required />
@if (
$errors->has
('email'))
<label id="
login
-
error
" class="
error
" for="
email
" style="
color
:
red
">
{
{$errors->first('email')}
}
</label>
@endif
</div>
</div>
<hr>
<div class="
row
">
<div class="
col
-
md
-
12
">
<label class="
form
-
label
" for="
password
">Password Baru</label>
<input type="
password
" id="
password
" name="
password
" class="
form
-
control
" placeholder="
Password
" data-msg="
Masukkan
Password
" required />
@if (
$errors->has
('password'))
<label id="
login
-
error
" class="
error
" for="
password
" style="
color
:
red
">
{
{$errors->first('password')}
}
</label>
@endif
</div>
</div>
</div>
<div class="
modal
-
footer
">
<button type="
submit
" class="
btn
btn
-
primary
">Submit</button>
<button type="
reset
" class="
btn
btn
-
outline
-
secondary
" data-bs-dismiss="
modal
" aria-label="
Close
">Cancel</button>
</div>
</form>
</div>
</div>
</div>
<!-- End Modal Tambah User -->
</div>
@endsection
@push('js')
@endpush
resources/views/layouts/menu.blade.php
View file @
679f4249
...
...
@@ -5,7 +5,7 @@
<ul
class=
"dropdown-menu"
data-bs-popper=
"none"
>
<li
data-menu=
""
class=
"{{ (request()->getRequestUri() == "
/
kategori
")
?
'
active
'
:
''
}}"
><a
href=
"{{route('kategori.index')}}"
class=
"dropdown-item d-flex align-items-center"
data-bs-toggle=
""
data-i18n=
"Email"
><i
data-feather=
"grid"
></i><span
data-i18n=
"Email"
>
Master Kategori
</span></a>
</li>
<li
data-menu=
""
class=
"{{ (request()->
is('admin/dokter')) ? 'active' : '' }}"
><a
href=
"#
"
class=
"dropdown-item d-flex align-items-center"
data-bs-toggle=
""
data-i18n=
"Email"
><i
data-feather=
'user'
></i><span
data-i18n=
"Email"
>
Master User
</span></a>
<li
data-menu=
""
class=
"{{ (request()->
getRequestUri() == "
/
user
")
?
'
active
'
:
''
}}"
><a
href=
"{{route('user.index')}}
"
class=
"dropdown-item d-flex align-items-center"
data-bs-toggle=
""
data-i18n=
"Email"
><i
data-feather=
'user'
></i><span
data-i18n=
"Email"
>
Master User
</span></a>
</li>
</ul>
</li>
...
...
routes/web.php
View file @
679f4249
...
...
@@ -4,6 +4,7 @@
use
App\Http\Controllers\Admin\KategoriController
;
use
App\Http\Controllers\Admin\TransaksiController
;
use
App\Http\Controllers\Admin\SakuController
;
use
App\Http\Controllers\Admin\UserController
;
use
Illuminate\Support\Facades\Route
;
/*
...
...
@@ -30,5 +31,6 @@
Route
::
resource
(
'kategori'
,
KategoriController
::
class
);
Route
::
resource
(
'transaksi'
,
TransaksiController
::
class
);
Route
::
resource
(
'saku'
,
SakuController
::
class
);
Route
::
resource
(
'user'
,
UserController
::
class
);
Route
::
get
(
'/logout'
,
[
LoginController
::
class
,
'logout'
])
->
name
(
'admin.logout'
);
});
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment