Как запретить доступ к админке

252
10 марта 2017, 00:42

В app/Http/Authenticate.php добавил такой код

public function handle($request, Closure $next)
    {
        if ($request->user()->hasRole('admin') {
            return $next($request);    
        }
        else if ($request->user()->hasRole('user'))
        {
            return redirect('404');
        }
        else
            return redirect('/');
    }

Пользователь с ролью user при попытке пройти по /admin получает 404, но, к примеру, /admin/articles - открывается

upd: можно ли добавить префикс в одну из групп?

//admin routes
    Route::auth();
    Route::group([префикс сюда,'middleware' => ['auth']], function () {
        Route::group([или сюда,'middleware' => ['role']], function () {
Answer 1

1) Посоветовал бы пользоваться пакетом entrust

2) Тебе нужно объединить маршруты в группу с префиксом admin, и поставить на него middleware, в случае entrust выглядит так:

Route::group(['prefix' => 'admin', 'middleware' => ['role:admin']], function() {
 //тут твои пути остальные
});

3) Даже если не будешь использовать пакет, тебе нужно создать middleware и повесить ее на группу

READ ALSO
Laravel 5.4 Vimeo API установка и настройка?

Laravel 5.4 Vimeo API установка и настройка?

Laravel 54 Vimeo API установка и настройка? Как настроить Vimeo API с Laravel 5

213
Правильное название

Правильное название

Есть код, в котором цвет блока генерируется случайным образом

203
Как нужно в js оформлять вывод

Как нужно в js оформлять вывод

Передаю id категории в в модель, там идет проверка и отдает мне массив, а как оформить не знаю views

228
Сравнение числа

Сравнение числа

Переменная num1 больше чем x, тогда почему не срабатывает условие

368