@ortsuev33

Как лучше реализовать такое ограничение?

У меня есть права пользователей admin и user.
Есть ссылка на редактор статей, с помощью php я бы сделал тупо условие проверки на совпадение строки в бд на строку admin ,есть ли что то готовое в laravel, я просто читал про guard (или это доступ на страницу) толком не понял нечего
  • Вопрос задан
  • 131 просмотр
Решения вопроса 2
@jazzus
Тебе нужны политики для модели article сделать политику прописать доступ и ограничивать с помощью can в шаблонах. В доках подробные примеры для разных ситуаций. Либо просто сделать проверку от юзера. Я так понимаю у тебя ролей нет и ты просто сделал поле admin в users. Тогда в модели User сделать проверку типа
public function isAdmin()
{
  return $this->admin === 1;
}

и в шаблонах
@if (Auth::user()->isAdmin())
  показать кнопку
@endif

но лучше политиками т.к. наглядней и проще рефакторить. Даже с одной ролью. Например захочешь создание статей еще в конфигах отключать. С политиками ты в методе create в ArticlePolicy добавляешь этот конфиг и у тебя по всему приложению заработала логика и не нужно везде дублировать код если что-то меняется. Советую потратить время на вникание, чем потом писать свои велосипеды. Иначе смысл Ларавел использовать?
Ответ написан
Комментировать
@oleg_ods
Почитай что такое RBAC. А дальше выбирай какой тебе больше нравится
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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