Добрый день!
Суть задачи:
1) Организовать роли, права и правила на сайте, чтобы можно было задавать любые роли и ограничивать их правами.
2) Есть определенная роль пользователей (заявитель) которые могут создавать некие организации, к этим организациям они могут присвоить своих сотрудников и тоже им дать конкретные роли и права.
1 - Легко реализуется на Yii2, прикрутил ещё yii2-admin в админку для удобства
2 - Не могу понять как сделать так чтобы было по yii-шному и чтобы можно было легко поддерживать в дальнейшем.
Как можно задавать права этим юзерам, чтобы он имел право редактировать контент в одной организации, но не мог в другой, но в другой мог бы заливать например документы, ну и само собой не имел доступ куда либо, только в рамках своего юзера родителя.
Как мысль была, дочерним юзерам присваивать parent_id заявителя.
Сразу создать кучу прав и отнести их только к заявителю.
Создать отдельную таблицу которая будут содержать информацию о том какие именно организации может видеть юзер,
но как дать права на разные организации определенного юзера пока не понял.
Может есть определенная технология, может кто-то практиковал подобное, поделитесь опытом пожалуйста!
zagamay_ru дорогой пользователь, настоятельно рекомендуем еще раз обратить самое пристальное внимание на п. 3.1 регламента работы сервиса (и, в особенности, на его последний абзац).
В противном случае, ваши вопросы будут удаляться по причине тег-спама.
Пользователь должен иметь принадлежность к компании, для этого создается промежуточная таблица
user_id | org_id
Потом создается правило для rbac, которое работает на основании этой принадлежности. Оно в свою очередь унаследовано от правила для компании, которая может редактировать свой пост.
Допустим я создал правило для доступа в организацию юзера по правилу (yii\rbac\Rule) и дал ему права на редактирования контента, но как мне дать права допустим на загрузку документов в другой компании, другими словами как дать разные права на разные организации?
zagamay_ru, наверное проще все через rbac, без доп страниц
Создаем роли для каждой компании, например
"менеджер компании ПинтаВамВУхо"
"копирайтер компании ПинтаВамВУхо" и т.д.
Соответственно создаем правила и доступы и вешаем из на эти роли. И даем роли ползователю . Таким образом имеем управление правами на уровне каждой компании.