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">&times;</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($requestClosure $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

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel