9. Hak Akses Gunakan Role Di Tabel User atau tambah user
1. ubah tabel user dengan tambahkan role
2. tambah role di model user.php
use Notifiable;
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password', 'role',
];
3. buat controller UserController
public function create(Request $request)
{
$massage = [
'required' => ':attribute wajib di isi !!',
];
$this->validate($request, [
'name' => 'required|min:4',
'email' => 'required|email|unique:users,email',
'password' => 'required|min:4|max:12',
], $massage);
User::create([
'name' =>$request->name,
'role' =>$request->role,
'email' =>$request->email,
'password' => bcrypt($request->password),
'remember_token' => str_random(60),
]);
return redirect()->back();
}
4. buat view user/pengguna untuk tampilkan & TAMBAH
- card header untuk button tambah user/pengguna
<div class="card-header">
<div class="row">
<div class="col-md-6">
<h3 class="card-title">Data Pengguna</h3>
</div>
<div class="col-md-6">
<a href="{{ url('/pengguna/store') }}" data-toggle="modal"
data-target="#tambahuser" class="btn btn-primary btn-sm float-right">
Tambah</a>
</div>
</div>
</div>
isi body
<table class="table">
<thead class="thead-light">
<tr>
<th scope="col">No</th>
<th scope="col">Nama</th>
<th scope="col">Email</th>
<th scope="col">Hak Akses</th>
<th scope="col">Pilihan</th>
</tr>
</thead>
<tbody>
@foreach ($akun as $ak)
<tr>
<th scope="row">{{$loop->iteration}}</th>
<td>{{$ak->name}}</td>
<td>{{$ak->email}}</td>
<td>{{$ak->role}}</td>
<td></td>
</tr>
@endforeach
</tbody>
</table>
masuk modal di bawah DIV tutup card body
<!-- Modal -->
<div class="modal fade" id="tambahuser" tabindex="-1" role="dialog"
aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Tambah Pengguna</h5>
<button type="button" class="close" data-dismiss="modal"
aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
@if(count($errors) > 0)
<div class="alert alert-danger">
@foreach ($errors->all() as $error)
{{ $error }} <br/>
@endforeach
</div>
@endif
<form class="multisteps-form__form"role="form"
method="post" action="{{ url ('produk-tambah/store')}}"
enctype="multipart/form-data">
@csrf
<div class="form-row mt-4">
<div class="col-12 col-sm-8">
<label>Nama</label>
<input class="multisteps-form__input form-control"
name="name" type="text"
placeholder="Nama Pengguna"/>
</div>
<div class="col-12 col-sm-4">
<label>Hak Akses</label>
<select name="role" class="multisteps-form__select form-control">
<option >-- PILIH --</option>
<option value="admin">Admin</option>
<option value="own">Pemilik</option>
<option value="karyawan">Karyawan</option>
</select>
</div>
</div>
<div class="form-row mt-4">
<div class="col-12 col-sm-12">
<label>Email</label>
<input class="multisteps-form__input form-control"
name="email" type="email"
placeholder="Masukan Email"/>
</div>
<div class="col-12 col-sm-12">
<label>Password</label>
<input class="multisteps-form__input form-control"
name="harga" type="password"
placeholder="Masukan Password"/>
</div>
<div class="form-row mt-4 ml-1">
<input type="submit" class="btn btn-success"
value="Simpan">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<!--stop modal-->
5. buat route
//pengguna
Route::get('/pengguna', 'USerController@index');
Route::post('/pengguna/store', 'USerController@create');
------
untuk hak aksesnya
6. buat middleware ketik peinrahnya di git atau terminal
" php artisan make:middleware HakRole "
cek di app/http/middleware
7. buka HakRole
masukan perintah berikut.
public function handle($request, Closure $next, ...$roles)
{
if (in_array($request->user()->role, $roles)) {
return $next($request);
}
return redirect('/');
}
8. registrasikan di kernel.php
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
'HakRole' => \App\Http\Middleware\HakRole::class
];
tambahkan Hakrole dibawahnya
'HakRole' => \App\Http\Middleware\HakRole::class
9. buka route web.php
Route::group(['middleware' => ['auth', 'HakRole:admin']], function () {
//pengguna
Route::get('/pengguna', 'USerController@index');
Route::post('/pengguna/store', 'USerController@create')
});
untuk membatasi
10. untuk membatasi atau menghilangkan tombol yang bukan aksesnya
@if(auth()->user()->role == 'admin')
<li class="nav-item">
<a class="nav-link" href="{{url ('pengguna',[])}}">Pengguna</a>
</li>
@endif
0 Response to "9. Hak Akses Gunakan Role Di Tabel User atau tambah user"
Post a Comment