Сообщаем вашему веб-приложению, что у пользователя есть разрешения на моделях laravel с использованием средств доступа - PullRequest
0 голосов
/ 04 марта 2020

Мне нужен способ сообщить моему внешнему приложению (автономному Vue. js приложению, если оно имеет значение), что вошедший в систему пользователь имеет разрешение на изменение модели. Например, у меня есть модель проекта, которую могут просматривать все пользователи приложения, но редактировать могут только владельцы (или некоторые другие ограничения). Чтобы сохранить бизнес-логику c в бэкэнде, мне нужен способ сообщить клиенту, что пользователь может / не может редактировать этот конкретный ресурс. Поэтому я добавил следующее в модель проекта:

public function getCanUpdateAttribute()
{
   $user = auth()->user();
   return $this->created_by == $user->id; // true if the logged in user is the creator
}

Мне просто нужно повторить это для атрибута can-delete. Этот код работает. Что касается бэкэнда, я буду реализовывать политики, чтобы перепроверить это, так как пользователь может просто создать свою собственную кнопку и выполнить редактирование. Теперь мой вопрос: Это правильный подход? Я искал примеры этого в inte rnet, но я не могу его найти. Конечно, одна из альтернатив, которые я рассматриваю, - это просто скрыть кнопки в интерфейсе.

...