Sto cercando di trovare una soluzione RBAC efficiente e flessibile per la mia app. Ho fatto una piccola ricerca e penso di aver creato il seguente.Controllo di accesso basato su ruolo Laravel 5
Nel mio modello User ho:
...
public function role() {
return $this->belongsToMany('App\Models\Role', 'user_roles');
}
public function hasRole($role) {
if($this->role->where('name', $role)->first())
return true;
}
...
E un esempio di utilizzo:
Route::group(['middleware' => 'auth'], function() {
Route::get('/dashboard', function() {
if (Auth::user()->hasRole('Sales')) {
return view('dashboards/sales');
} else {
return 'Don\'t know where to send you :(';
}
});
});
Le autorizzazioni vengono assegnate ai ruoli, ma i permessi non vengono controllati nell'esempio di cui sopra. I ruoli vengono quindi assegnati agli utenti e un utente può avere molti ruoli.
È il modo in cui ho fatto le cose scalabili e una soluzione RBAC efficace?
5.1.11 introdotto autorizzazione utilizzando le capacità e le politiche. Potrebbero soddisfare le vostre esigenze? http://laravel.com/docs/5.1/authorization .. potresti provare ENTRUST anche se https://github.com/Zizaco/entrust – e4rthdog
Grazie, l'unica cosa che non ti dice come fare è come assegnare abilità a determinati utenti che utilizzano un database. – imperium2335
Invece di controllare l'abilità tramite il modello utente ... http: //laravel.com/docs/5.1/authorization#defining-abilities – e4rthdog