Laravel - разрешить пользователю обновлять ресурс только элементами внешнего ключа, принадлежащими той же организации, что и пользователь. - PullRequest
0 голосов
/ 30 января 2019

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

Какпример:

A user принадлежит organization => user.organization_id

A organization имеет множество item объектов => item.organization_id

Теперь user хочет обновить ресурс с несколькими столбцами и четырьмя столбцами элементов item1, item2, item3, item4.

. user можно разрешить устанавливать толькоодин из этих 4 предметов с идентификатором item, который принадлежит его организации.

Я создал Контроллер и Политику для этого случая, которая содержит функцию

// Controller function
public function update(Request $request, ItemToUpdate $item)
    {
        //
    }

// Policy function
public function update(User $user, ItemToUpdate $item)
    {
        //return true;
    }

Теперь мой вопрос: Каков самый эффективный способ проверить, если пользовательразрешено обновлять ресурс с помощью идентификаторов, которые отправляются в запросе.

Конечно, я мог бы сделать запрос БД для каждого элемента и проверить, если item.organization_id === user.organization_id, но действительно ли это наиболее эффективный и эффективныйКстати?

Спасибо

1 Ответ

0 голосов
/ 30 января 2019

На мой взгляд, лучший способ - это создать собственный запрос, а внутри авторизовать метод сделать ваши проверки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...