@Tarasovych

Как правильно создать роль и настроить права на laravel?

Мне нужно создать роль и ограничить для нее доступ к админке. В БД я добавил новое значение для роли, как можно ограничить для даной роли пути в routes (допустим, чтобы попытки перехода по /admin/... перенаправляли на 404)?
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('/');
    }

такой код редиректит с admin/ на 404, но дочерние страницы админки доступны
routes.php
//admin routes
    Route::auth();
    Route::group(['middleware' => ['auth']], function () {
        Route::group(['middleware' => ['role']], function () {
            Route::get('/...', function () {
                return redirect(...);
            });
            //пути админки
            });
            //пути админки, которые доступны всем ролям, но при переносе их на уровень выше - ошибка PDOException
  • Вопрос задан
  • 1946 просмотров
Пригласить эксперта
Ответы на вопрос 1
@distorsion
Используй middleware - инструмент, который позволяет создать определенные условия для доступа к роутам и т.д. Middleware
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы