laravel spatie: otentikasi lan manajemen ijin
Laravel Spatie minangka salah sawijining paket paling kuat ing Laravel kanggo ngatur peran lan ijin pangguna.
Idin Laravel Spatie ndadekake implementasi RBAC (kontrol akses basis peran) luwih gampang tinimbang sadurunge.
Ing artikel iki, kita bakal weruh carane nginstal lan ngatur plugin Shield kanthi bener kanggo nggunakake manajemen ijin kanthi cepet lan gampang.
Perkiraan wektu maca: 4 menit
Izin Laravel
Idin Laravel minangka paket sing kuat kanggo nemtokake peran, menehi ijin, lan ngatur akses pangguna ing aplikasi Laravel sampeyan. Nerangake karo sintaks sing gampang digunakake lan fitur sing kuat.
Ing Filament ana plugin sing bisa digunakake kanggo ngatur ijin Aset, Kaca lan Widget ing panel Filament nggunakake spatie / Laravel-ijin.
Syarat
Kanggo luwih ngerti isi artikel iki, disaranake sampeyan maca artikel ing ngendi aku nerangake konsep dhasar saka Filament, lan panginstalan saka Filament. Aku uga menehi saran supaya luwih jero babagan proyek kasebut ing repositori GitHub lan tansah diterangno ingartikel ing Filament.
Filament Shield
Filament Shield digawe dening Bezhan Salleh, pangembang full-stack experienced. Nggunakake Filament Shield sampeyan bisa ngatur peran lan ijin kanthi gampang sing ndhukung spatie / ijin Laravel paling anyar.
Babagan pisanan sing kudu ditindakake yen pengin nginstal Filament Shield kanggo proyek kita yaiku nglakokake perintah ing ngisor iki:
composer require bezhansalleh/filament-shield
Saiki kita kudu nambah Trait HasRoles
nel model User
, Mulane ing use Spatie\Permission\Traits\HasRoles
use Spatie\Permission\Traits\HasRoles;
class User extends Authenticatable implements FilamentUser
{
use HasFactory, Notifiable, HasRoles;
Kanthi cara iki, kita nyambungake manajemen peran lan ijin menyang model kasebut User
.
Banjur kita nerbitake file kasebut config
lan kita nyetel konfigurasi nggunakake printah ing ngisor iki:
php artisan vendor:publish --tag=filament-shield-config
Lan kita ndhaftar plugin nangAdminPanelProvider
kanggo panel Filament sing dikarepake, lan kita nindakake iki nggunakake sintaks iki ing file kasebut app\Providers\Filament\AdminPanelProvider.php
,
-> plugin ([
\BezhanSalleh\FilamentShield\FilamentShieldPlugin :: make ()
])
Instalasi
Ayo nginstal saiki Shield di Filament ing proyek kita, kita mbukak printah ing ngisor iki:
php artisan shield:install
Saiki kita duwe menu Peran anyar kanthi tabel peran lan peran standar yaiku Super Admin,
Nalika nggawe peran, kita bakal weruh formulir nggawe peran sing ngemot kabeh template lan sumber daya sing wis digawe, bebarengan karo ijin kanggo kabeh peran lan tumindak sing bisa lan ora bisa ditindakake.
Nang file config/filament-shield.php
ana paramèter konfigurasi sing beda kanggo Idin lan Peran.
Laravel Spatie Shield ngatur ijin kanggo sumber daya Filament, lan nindakake ing rong cara: standar lan adat. Ing mode standar, iki ngatur ijin standar kanggo sumber daya Filamen, lan prefiks wis ditemtokake ing file kasebut. config/filament-shield.php
.
Yen sampeyan kudu nambah ijin siji (contone, kunci) lan kasedhiya kanggo kabeh sumber daya, mung nambahake menyang tombol konfigurasi sing kadhaptar ing ndhuwur.
Yen sampeyan butuh ijin khusus kanggo mung siji sumber, sampeyan kudu nggunakake cara khusus. Yen sampeyan duwe kabutuhan iki, sampeyan bisa sinau liyane kanthi ngeklik kenei.
Kabijakan ditetepake kanggo saben sumber ing direktori app/Policies
.
Supaya peran Filament Shield bisa mlaku kanthi bener, sampeyan kudu menehi akses menyang RoleResource
prosedur RolePolicy
, lan kanggo nindakake iki, sampeyan kudu ngaktifake parameter kasebut register_role_policy
, ing Panjenengan AuthServiceProvider
:
Sampeyan bisa nemokake conto iki kanthi konfigurasi lengkap ing gudang, kanggo ndeleng sampeyan bisa klik link iki kanggo ngakses repositori ing GitHub.