У меня много 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);
});
Будет ли это работать? Я в правильном направлении? Мне нужно понять, кто выполняет действие, и с кем это действие делается.