gubin_niko
@gubin_niko

Как реализовать общую политику для разных контроллеров в Laravel?

Добрый день, друзья.

Добрался до политик в Laravel и сразу же вопрос - реально ли сделать общую политику для разных контроллеров?
Да, вы можете предложить использовать посредника, в котором проверить права, но мне необходимо обработать как положительный результат, так и отрицательный. Если углубиться в задачу, то я имею одну таблицу пользователей, но есть флаг, который указывает на то, админ это или простой пользователь. Есть личный кабинет, который должен быть доступен только простому пользователю, а админу должно выводиться сообщение, что у него нет прав к этому разделу. Аналогично с корзиной и многим другим.

Есть другой вариант, в модели пользователя я уже создал два метода: isRegularUser и isSpecialUser, которые возвращают булевые значения. Это решение, которое я могу использовать прямо сейчас, но хотелось бы понять, можно ли в Laravel сделать общую политику? Может проглядел, но в мануале в разделе "регистрация политик" ясно видно, что каждая политика привязывается к определённому классу. Или же я могу привязать одну и ту же политику к разным классам, но что делать в случае, когда нужно дополнить правила персональной политикой?

Повторюсь, я понимаю, что это можно решить через модель пользователя, но в целях обучения решил спросить более опытных! Благодарю за понимание.
  • Вопрос задан
  • 491 просмотр
Решения вопроса 1
@deadmemoras
Сложно)
В таком случае можно использовать связи: многие ко многим.
К примеру: роль "администратор" может иметь много пользователей и подобно.
В документации приводится очень полезная информация насчет связей.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы