Skip to content

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

NomePossibilità
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 createe 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 per delete() poi per forceDelete()

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.

php
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.