somewhat like Rachid ... check my ref to documentation at the end :
In routes.php:
Route::group(['middleware' => 'isAdmin'], function () {
Route::get('admin', 'adminController@adminDashboard');
});
In a middleware you create with artisan :
public function handle($request, Closure $next)
{
// Obtenir la liste des roles de l'utilisateur
$UserRoles = DB::table('roles')->join('role_user','role_id', '=', 'roles.id')->where('user_id', '=', Auth::user()->id)->lists('name');
// vérifier si cet utilisateur a le role d'admin
$isAdmin = false;
foreach($UserRoles as $role)
{
if($role == 'admin')
{
$isAdmin = true;
}
}
// snippet ci-dessous selon doc de Laravel
if( ! $isAdmin )
{
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect()->back(); //todo h peut-etre une fenetre modale pour dire acces refusé ici...
}
}
return $next($request);
in kernel.php :
protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'isAdmin' => \App\Http\Middleware\isAdmin::class,];
watch this :
https://laracasts.com/series/laravel-5-fundamentals/episodes/16
and look at this :
https://laracasts.com/discuss/channels/general-discussion/check-if-user-has-admin-role