Laravel, какое отношение выбрать
Есть таблица
role в ней хранятся список ролей пользователя
id | name |
1 - Директор 2 - Старший менеджер 3 - Главный представитель 4 - Тернер
role_access в ней планируется хранятся список ролей и какие они могут добавлять роли при будущем создании пользователей, к примеру
role_id | access_id
1 - 1,2,3,4
3 - 4
То есть Директор может добавить пользователя со всеми ролями, а Главный представитель только Тренера, надеюсь правильно объяснил
Как мне это реализовать ?
Ответы (1 шт):
Сделать модели Role и UserRole с таблицами. Связь Many To Many. Логику добавления в таблицу user_role реализовывать в коде, не в таблицах. Права доступа проверять с помощью Laravel Policy. Сделать политику в UserPolicy
public function attachRole(User $user)
{
return $user->isAdmin();
}
Добавить в модель User проверку на админа (или проверку на роль пользователя, которые могут добавлять роли)
const ID__ADMIN = 4;
public function isAdmin()
{
return $this->id === self::ID__ADMIN;
}
И проверять в контроллере перед добавлением роли
$user = Auth::user();
$this->authorize('attachRole', $user);