Ограничение пользователей с помощью Middlewares - Laravel - PullRequest
0 голосов
/ 05 октября 2018

У меня есть две роли в моем приложении admin и users.Обе роли используют промежуточное ПО под названием auth.Теперь в приложении, когда я вхожу как администратор, я не могу перенаправить на страницу пользователя (это идеально).

Но когда я захожу как пользователь, я могу перенаправить на страницу администратора , но мой авторизация должен препятствовать доступу пользователя к странице администратора.В настоящее время это моя проблема ... Что я не делаю правильно?

Ниже представлен мой код

AuthMiddleWare

 if (Auth::check())
        {

        if(Auth::user()->roles->pluck('name')->first() == "admin")
        {
            // return $next($request);
            return Redirect::to('/admin/dashboard');

        }

        else if(Auth::user()->roles->pluck('name')->first() == "user")
        {
            return Redirect::to('/user/dashboard/');
        }

        else{
            return Redirect::to('login');
        }
    }

Маршрут

Route::group(array('prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => ['auth']), function () {

    Route::get('dashboard','Controller@show');

}

Route::group(array('prefix' => 'user', 'namespace' => 'User', 'middleware' => ['auth']), function () {

    Route::get('dashboard','Controller@show');

}

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Попробуйте следующий код:

if (Auth::check())
{
    if(in_aaray('admin', Auth::user()->roles->pluck('name')->all()))
    {
        // return $next($request);
        return redirect('/admin/dashboard');
    }
    else if(in_array('user', Auth::user()->roles->pluck('name')->all()))
    {
        return redirect('/user/dashboard/');
    }
    else{
        return redirect('login');
    }
}else{
    return redirect('login');
}
0 голосов
/ 05 октября 2018

вам нужно сделать кастомную авторизацию в laravel и создать другую таблицу для администратора и пользователя

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...