laravel spatie tutorial

Laravel Spatie je jedan od najmoćnijih paketa u Laravelu za upravljanje korisničkim ulogama i dozvolama.

Spatie-ova Laravel dozvola čini implementaciju RBAC-a (kontrola pristupa zasnovana na ulogama) lakšom nego ikad.

U ovom članku ćemo vidjeti kako ispravno instalirati i konfigurirati dodatak Shield za brzo i jednostavno korištenje upravljanja dozvolama.

Predviđeno vrijeme čitanja: 4 minute

Laravel dozvola

Laravel dozvola je moćan paket za definiranje uloga, dodjelu dozvola i upravljanje korisničkim pristupom u vašim Laravel aplikacijama. Dolazi sa sintaksom jednostavnom za korištenje i moćnim funkcijama.

U Filamentu postoji dodatak koji se može koristiti za upravljanje dozvolama sredstava, stranica i vidžeta na panelu Filament pomoću spatie / Laravel-dozvole.

Zahtevi

Za bolje razumijevanje sadržaja ovog članka, preporučujemo da prvo pročitate članak u kojem objašnjavam fundamentalni koncepti filamenta, i instalacija od filamenta. Također vam savjetujem da se dublje udubite u projekat na spremištu GitHub i uvijek objašnjeno učlanak o filamentu.

Filament Shield

Filament Shield kreirao Bezhan Salleh, iskusni full-stack programer. Koristeći Filament Shield možete lako upravljati ulogom i dozvolama koje podržavaju najnoviju Laravel prostornu/dozvolu.

Prva stvar koju treba da uradimo ako želimo da instaliramo Filament Shield za naš projekat je da pokrenemo sledeću naredbu:

composer require bezhansalleh/filament-shield

Sada moramo dodati Trait HasRoles Nel model User, dakle use Spatie\Permission\Traits\HasRoles

use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable implements FilamentUser
{
    use HasFactory, Notifiable, HasRoles;

Na ovaj način vezujemo upravljanje ulogama i dozvolama za model User.

Zatim objavljujemo fajl config i postavili smo našu konfiguraciju koristeći sljedeću naredbu:

php artisan vendor:publish --tag=filament-shield-config

I registrujemo dodatak unutarAdminPanelProvider za željene filament panele, a mi to radimo koristeći ovu sintaksu unutar datoteke app\Providers\Filament\AdminPanelProvider.php,

-> plugin ([ 
      \BezhanSalleh\FilamentShield\FilamentShieldPlugin :: make () 
])

Instalacija

Hajde da ga sada instaliramo Štit di filament u našem projektu pokrećemo sljedeću naredbu:

php artisan shield:install

Sada imamo novi meni uloga sa tabelom uloga i zadana uloga je Super Admin,

uloge štita filamenta

Kada kreiramo ulogu, vidjet ćemo obrazac za kreiranje uloge koji sadrži sve predloške i resurse koje smo kreirali, zajedno s dozvolama za sve uloge i radnje koje mogu i ne mogu izvršiti.

filament shield nova uloga

Unutar fajla config/filament-shield.php postoje različiti parametri konfiguracije za dozvole i uloge.

Laravel Spatie Shield upravlja dozvolama za resurse Filamenta, i to na dva načina: zadani i prilagođeni. U zadanom načinu rada upravlja zadanim dozvolama za izvore filamenta, a prefiksi su unaprijed definirani unutar datoteke config/filament-shield.php.

prefiks dozvole
Prefiks dozvola

Ako trebate dodati jednu dozvolu (npr. zaključavanje) i imati je na raspolaganju za sve svoje resurse, jednostavno je dodajte u konfiguracijski ključ naveden gore.

U slučaju da vam je potrebna posebna dozvola za samo jedan resurs, onda morate koristiti prilagođeni metod. ako imate ovu potrebu, možete saznati više klikom ovdjei.

Politike su definirane za svaki resurs unutar direktorija app/Policies.

Da bi uloge Filament Shield ispravno funkcionirale, morate odobriti pristup RoleResource procedure RolePolicy, a da biste to učinili trebate omogućiti parametar register_role_policy, u vašem AuthServiceProvider:

politika registracije uloga
politika registracije uloga

Možete pronaći ovaj primjer sa kompletnom konfiguracijom u spremištu, možete ga vidjeti kliknite na ovu vezu da pristupite spremištu na GitHubu.

autor