Всем привет. Есть приложение на Laravel, где есть 2 основные сущности: юзер и компания. Необходимо реализовать роли юзеров. Задача осложняется тем, что юзеры получают роли не для всего сайта, а локально для компаний.
Для глобальных ролей пользовался библиотекой spatie/laravel-permission. В данном же случае она не подходит, поскольку в ней роли идут глобально. Подскажите, как правильнее поступить: кастомизировать данную библиотеку под меня или же написать все с нуля?
Посмотрите в сторону пакета Laratrust: https://laratrust.readthedocs.io
Я когда-то использовал его для простого распределения ролей. Но там есть понятие teams. На первый взгляд, это то, что вам нужно.
В ларавеле есть более-менее стандартный подход в виде возможности добавить собственные политики безопасности, внутри которых можно, например, проверить есть ли у пользователя права на работу с конкретными компаниями. Весь подход уложится в написание такой политики, создание связи Company-User, которая и будет задавать права на работу с конкретными компаниями. Если нужно распределение ролей — то в эту же таблицу со связью можно добавить поле с уровнем доступа и также его проверять в политике.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости