megakor
@megakor
Go/PHP developer | Вконтакте

Как проверить действие в политике на незалогиненном юзере?

Я в контроллере во view (у меня spa на vue.js) в виде JSON отдаю некоторые права юзера, типа такого:
return [
    'post' => $post, 
    'permissions' => [
        'view' => auth()->user()->can('view', $post),
        'edit' => auth()->user()->can('edit', $post),
        'delete' => auth()->user()->can('delete', $post),
    ],
]);


Я знаю, что если в аргументах метода политики перед типом аргумента поставить ? то политику можно проверять и на гостей тоже.
Но вопрос - как это делать в контроллере? Есть пользователь не залогинен auth()->user() вернет null.
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
@Kostik_1993
Web Developer
Перстаньте использовать Auth фасад. Вместо этого используйте Gates, как раз они и призваны решить вашу задачу
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@jazzus
В контроллере нужно юзать $this->authorize('update', $post) или конструктор для ресурсных контроллеров
Ответ написан
Комментировать
pLavrenov
@pLavrenov
Разработка сайтов
Auth::user()
Auth::guest()
Ответ написан
Ваш ответ на вопрос

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

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