Проверка ролей администратора в laravel 5.1

Я делаю свой проект, используя структуру Laravel. Все кажется идеальным. Однако в моей части входа в систему я хочу сделать что-то вроде входа пользователя в систему, он будет проверять столбец «is_admin». Если столбец «is_admin» равен 1, он перейдет прямо на страницу администратора. Я искал в Интернете, но я не могу найти ответ на этот вопрос. Я также использовал Middleware, но это не сработало. Я не знаю почему. Может ли кто-нибудь помочь мне с этим. Спасибо


person Huy Le    schedule 30.11.2015    source источник


Ответы (2)


Laravel 5.1 разрешает авторизацию, вы можете добавить что-то подобное в свой AuthServiceProvider

public function boot(GateContract $gate){
    $gate->define('admin', function($user){
        return $user->is_admin;
    });
}

Затем используйте фасад Gate в своих контроллерах, например

$user=Auth::user();
if(Gate::allows('admin', $user)){
    //user is admin
}

Взгляните на эту часть документации Laravel http://laravel.com/docs/5.1/authorization

person Saad    schedule 30.11.2015

Вы можете написать это в своем AuthController.php

if(Auth::user()->is_admin == 1){
    protected $redirectTo = 'admin';
}else{
    protected $redirectTo = 'member';
}

Код avobe предназначен только для перенаправления. Вы можете использовать промежуточное ПО для защиты панели администратора от участников.

person smartrahat    schedule 30.11.2015