Дисциплины - Разработка веб-приложений

Продвинутый уровень - Policies и gates

Policies и gates это механизмы авторизации в Laravel, которые позволяют вам определять и проверять права пользователей на определенные действия.

Policies это классы, которые организут логику авторизации вокруг определённой модели или ресурса. К примеру, имеется модель App\Models\Post и App\Policies\PostPolicy для авторизации действий пользователя, таких как создание или обновление сообщений.

Вы можете создать политику с помощью make:policy Artisan-команды. Созданный класс появится в дирректории app/Policies, которая будет создана, если команда вызывается впервые. Имеется также возможность при создании Policy привязывать их к модели:

php artisan make:policy PostPolicy --model=Post

Gates — это просто замыкания, которые определяют, имеет ли пользователь право выполнить данное действие. Обычно gate определяется в методе загрузки класса App\Providers\AuthServiceProvider с использованием фасада Gate. Класс gate всегда получает экземпляр пользователя в качестве первого аргумента и может опционально получать дополнительные аргументы, такие как соответствующая модель Eloquent. Может быть использован, чтобы определить, может ли пользователь обновить данную модель. Gate выполнит это, сравнивая идентификатор пользователя с user_id пользователя, создавшего сообщение.

Количество комментариев: 0

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