Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 29.08.2017 13:55:08

Gate::denies в конструкторе

Подскажите, кто сталкивался laravel 5.4. Хочу сделать проверку прав и ролей через фасад Gate что-то типа

Gate::define('ADMIN', function (User $user) {
           return $user->hasRole('ADMIN');

        });

прописывается в провайдере AuthServiceProvider. метод hasRole в модели проверяет соотв право и возвращает true или false. и далее

if (Gate::denies('ADMIN')) {
            abort(403);
        }

все это работает,если последнее я вызываю в определенном методе контроллера. но я хочу вызвать проверку в конструкторе контроллера, чтобы распространялось на весь,но в таком случае проверка всегда кидает на abort((
Кто может направить, что не так, или так нельзя вообще?

Не в сети

#2 04.09.2017 16:42:16

Re: Gate::denies в конструкторе

в конструкторе/boot'e не доступен user..

можно попробовать что-то такое

   public function __construct() {
        $this->middleware(function ($request, $next) {
            $this->user = Auth::user();
            return $next($request);
        });
    }

Не в сети

Подвал раздела