Laravel Gates - Как авторизовать пользователя на одном ресурсе? - PullRequest
0 голосов
/ 06 апреля 2020

У меня много agencies и много users. Пользователь может иметь роль manager в одном agencies, а также роль customer в другом агентстве. Так что это отношение «многие ко многим».

Я хотел бы внедрить некоторую авторизацию для базовых c грубых действий среди пользователей агентств.

Например, менеджер магазина может только создавать / просматривать / обновлять / удалять пользователей для своего магазина. Как я мог выполнить sh это с Laravel воротами?

Вот мои ворота в AuthServiceProvider:

Gate::define('edit-user', function ($causerUser, $recieverUser) {
    return $causerUser->hasAccess(['edit-user'])
    or $causerUser->id == $recieverUser->id
    or $recieverUser->agency->hasMangaerWithId($causerUser->id);
});

Будет ли это работать? Я в правильном направлении? Мне нужно понять, кто выполняет действие, и с кем это действие делается.

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