Policies
Documentazione di riferimento: Laravel Policies
Nel nostro utilizzo del Framework Laravel le Policy sono il punto in cui andiamo ad indicare quale "attore" può eseguire una certa operazione. Come attore si può intendere il ruolo dell'utente che in quel momento è loggato nel sistema.
Metodi presenti di default
Nome | Possibilità |
---|---|
viewAny() | Vedere tutti i record (non significa che gli scopes non entrino in gioco) |
view() | Vedere una precisa risorsa (stesso discorso di prima) |
create() | Creare una risorsa |
update() | Modificare una risorsa |
delete() | Eliminare una risorsa |
forceDelete() | Eliminare forzatamente una risorsa (in caso di soft delete abilitata nel modello) |
restore() | Annullare la soft delete |
Tutti questi metodi, tranne create
e viewAny
riceveranno come parametri l'utente e il Model della risorsa, in modo da implementare la logica voluta nel metodo.
N.B. quando il metodo
...->forceDelete()
viene usato sul Modello, nella Policy il codice passerà prima perdelete()
poi perforceDelete()
Metodo before()
Oltre a quelli elencati in precedenza, è possibile usare anche il metodo before()
. Utile per quelle classi Policy dove può essere utile eseguire lo stesso controllo.
public function before(User $user): ?bool
{
if($user->isAdmin())
return true;
return null;
}
N.B. fare attenzione a ritornare
null
se negli altri metodi dev'essere eventualmente eseguito altro codice.