Контроль доступа на основе ролей, где роли меняются в зависимости от местоположения в приложении
Мне поручено разработать новую ролевую модель доступа для нашей системы.
Требования являются чем-то вроде следующего:
Пользователь может войти в систему, и его роль будет зависеть от того, какой клиент просматривает.
- Эта часть проста: клиент A -> менеджер проекта, клиент B -> QA Analyst и т. Д.
Пользователь может быть частью команды.
- Пользователь A (член) Team 1, Team 2 и т. Д.
Вот сложная часть, на мой взгляд. В зависимости от того, какой проект просматривается, пользователю могут быть назначены совершенно новые роли.
- Клиент A -> Project Manager - это реальная роль пользователя A, но для проекта 1337 пользователь A будет аналитиком QA.
Есть ли хорошая, согласованная модель, чтобы справиться со всем этим, или мне нужно будет создать свою собственную?
1 ответ
Это не похоже на то, что это будет так просто, поскольку не похоже, что вы сможете воспользоваться преимуществами групп, если все проекты изолированы друг от друга, а пользователи будут играть совершенно разные роли в каждый проект. Я бы рекомендовал пометить группы с номером / именем проекта И ролью в названии группы. Например:
- Проект 1 вечера
- Проект 1 QA
- Проект 2 вечера
- Проект 2 QA
- так далее...
Таким образом, пользователь A может быть членом группы Project 1 PM и группы Project 2 QA и иметь доступ на основе этого членства.
Я не совсем уверен, какова цель команд или хотите ли вы разбить доступ / уведомления по командам или нет, так что это может потребовать немного больше размышлений.