Ho problemi a progettare questa applicazione basata su ruoli (o permessi), quando si tratta di capire come gestire azioni che differiscono per ruolo.
Ad esempio, il nostro controller è App\ResourceController , e modificheremo la risorsa. Esistono 2 ruoli: admin e user . Il admin è autorizzato a modificare ogni campo della risorsa, mentre user è limitato ad alcuni di essi .
Sto cercando di capire quale sia l'approccio migliore tra l'implementazione di un singolo controller che gestirà entrambi i casi o il routing della richiesta a un controller diverso per la stessa risorsa (come App\Admin\ResourceController , App\User\ResourceController ).
Il problema con l'approccio a controller singolo è che non si tratta solo di mostrare una forma diversa (con campi limitati) in base al ruolo, ma anche di convalidare campi diversi e altro ancora. Il corpo del controllore assomiglierebbe a una grande dichiarazione if-else .
Il controller multiplo è l'approccio corretto, oppure ce n'è uno diverso che usa le autorizzazioni invece dei ruoli?