• This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn more.

Cara Membuat Authorization Laravel Menggunakan Gate

Kepala Suku

Web & Mobile Developer
Staff member
#1
Deklarasikan Gate
Pertama deklarasikan Gate di dalam App\Providers\AuthServiceProvider;
Di dalam fungsi boot tambahkan deklarasi gate seperti berikut:
PHP:
//gate satu untuk ngecek apakah user tersebut merupakan admin
Gate::define('isAdmin', function ($user){
   return $user->type == 'admin';
});

//gate dua untuk ngecek apakah user tersebut sudah memiliki perusahaan
Gate::define('hasCompany', function ($user){
   return !is_null($user->company_id);
});
Menggunakan Gate di Route
Contoh kode penggunaan gate melalui route adalah sebagai berikut:
PHP:
Route::group(['middleware'=> ['can:hasCompany']], function(){
    Route::get('/product', '[email protected]')->name("site.product");
});
Menggunakan Gate di Blade Template
Contoh kode penggunaan gate di blade untuk mengecek apakah user tersebut sudah memiliki perusahaan atau belum untuk menampilkan menu berbeda.
PHP:
@can('hasCompany')
    <a href="{{route("site")}}" class="list-group-item list-group-item-action"><i
                                class="fa fa-globe"></i> Situs Anda</a>
@else
    <a href="{{route("site")}}" class="list-group-item list-group-item-action"><i
                                class="fa fa-globe"></i> Buat Situs</a>
@endcan
Menggunakan Gate di Controller
Contoh kode penggunaan di Controller untuk mendeteksi apakah pengguna sudah memiliki perusahaan atau belum.
PHP:
if(!Gate::allows('hasCompany')) {
   return "belum punya perusahaan";
}else{
   return "sudah punya perusahaan";
}
Gate yang digunakan adalah: use Illuminate\Support\Facades\Gate;