Я добавил стандартный фильтр авторизации к нескольким маршрутам, используя Route::Intended('/') в контроллере (при условии, что вход в систему выполнен успешно).
фильтры.php:
Route::filter('auth', function(){
if (Auth::guest()) return Redirect::guest('internal/login');
});
Контроллер:
if (Auth::attempt($data, false))
{
return Redirect::intended('/');
}
Как мне создать собственный фильтр авторизации, который проверяет наличие определенного разрешения (в данном случае isAdmin)?
Я сделал фильтр auth.admin таким же, как стандартный фильтр авторизации, для перенаправления на страницу входа, но нужен ли мне второй метод входа в систему на моем контроллере или есть ли способ определить, какой фильтр (если есть) вызвал контроллер метод?
if (Auth::attempt($data, false))
{
if (RouteHasAdminFilter())
{
if (!Auth::User()->Admin)
return Redirect::intended('/');
else
return Redirect::to('/');
}
else
{
return Redirect::intended('/');
}
}