приспособить пакет sparie permissions. есть 4 роли, админ, рекламодатель, менеджер и оператор
Есть 2 вопроса:
1. Как можно разделить код, например рекламодатель может добавлять новых пользователей в свою компанию и company_id не нужно в form_request, так же response для одинаковых разделов, разный. Хотелось бы завязать на permissions а не role name, но как это обыграть не понятно пока( Т.е. есть одинаковые разделы, которые имеют разные проверки входных данных, разный запрос и ответ
2. Нужно ограничить список прав в рамках какой-то группы (например доступ к разделы у операторов, не может быть в других ролей, соответственно админ не может создать смешанную роль админ + оператор. Я так понял нужно группировать права в группы и предлагать админу создавать роль на основе группы?
https://laravel.com/docs/8.x/authorization#creating-policies
по 1 пункту — подставлять в форму company_id, но не давать его редактировать (да хотя бы в hidden input), на беке проверять, что рекламодатель может добавлять пользователей в эту компанию.
у меня api, проблема скорее в организации кода, чем в самой логике. Один form request должен проверять что company_id required, другой нет (если это не админ), и тут товарищ выше бы сказал - так проверь это в formrequest, например switch или if )) но что если таких различий будет больше, код будет усыпан проверками. Опять же пример раздел пользователи для админа и для рекламодателя почти одинаковый, но админу вовзаращется response более расширенный (больше информационных данных по пользователям). давно все советуют привязываться к пермишенам, а не к строчке if($role='admin'), ведь роли динамические в нашем проекте и я могу создавать их в любой момент
пока нет каши, поэтому и ищу решения чтобы её не создать) ну либо придется, если ничего не придумаю "Создай permission, который будет добавлять расширенную инфу в ответ." отдельное правило, аля "полный ответ о пользователях" ? )) не понял тут
что-то типа can('full-info'). И если сработало, то добавляешь к ответу больше информационных данных по пользователям, если нет - отсылаешь минимальный набор данных
и кто должен выставлять этот пермишен и как ты себе это представляешь?)) я вижу со стороны UI группы прав, например "пользователи", внутри "Список пользователей", "Добавление пользователя" и т.д. как обычный юзер, менеджер или просто доверенной лицо должно понимать что такое full-info или правило "Возвращать полный ответ" )
кто должен выставлять этот пермишен Тот, кому ты дашь право на установку этого permission Роль админа - это кто и чем занимается?
Админ это не программист)
Обсуждают сегодня