laravel spatie tutorial

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,

peran tameng filamen

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.

filamen tameng peran anyar

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.

awalan ijin
Ater-ater idin

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:

ndhaftar kawicaksanan peran
ndhaftar kawicaksanan peran

Sampeyan bisa nemokake conto iki kanthi konfigurasi lengkap ing gudang, kanggo ndeleng sampeyan bisa klik link iki kanggo ngakses repositori ing GitHub.

Autore