Sto lavorando a un'app del pannello di controllo in cui ho diversi ruoli utente come globaladmin, editor ecc. Ora voglio utilizzare questi ruoli con una singola risorsa UserController.Suggerimenti sull'utilizzo dei ruoli Entrust in un singolo controller risorse - Laravel5
Ad esempio, globaladmins dovrebbe essere in grado di eseguire tutti i metodi Restful, mentre un editor può solo visualizzare e aggiornare un utente.
So che l'affidamento viene fornito con i middleware fuori dalla scatola, che è perfetto per ciò di cui ho bisogno. Ma funziona solo sui percorsi (nel qual caso avrei bisogno di un controller separato per ciascun ruolo).
Il mio UserController è simile a questo.
Class UserController extends BaseController
{
$protected $viewfolder;
public function __construct
{
// Checking for role and then assigning the folder name of the views
$role = User::getRole();
switch($role)
case 'globaladmin':
$this->viewfolder = 'globaladmin';
break;
case 'editor':
$this->viewfolder = 'editor';
break;
default:
abort(401, 'Access Denied');
break;
}
public function index(){
if(Entrust::can('view-all-users')){
$users = User:all();
}
return view($this->viewfolder.'.users.viewuser', compact('users'));
}
public function create()
public function update()
public function delete()
}
Ho bisogno di un middleware nel costruttore che avrebbe verificare la presenza di ruolo utente e quindi consentire solo ad utilizzare il metodo solo se il ruolo ha il permesso di usarlo. Ma questo dovrebbe essere fatto in un modo decente senza alcun hack perché lo userò anche su altri controller.
Grazie per la risposta. Anche se sono andato giù un altro percorso di avere controller individuali per ogni ruolo, a causa della complessità dell'app. Ma mi piace molto questa idea. Aspettiamo e vediamo se qualcuno ha una nuova prospettiva. –