Назад | Перейти на главную страницу

Контроль доступа на основе ролей, где роли меняются в зависимости от расположения в приложении

Мне поручено разработать новую модель доступа на основе ролей для нашей системы.

Требования заключаются в следующем:

  1. Пользователь может войти в систему и будет иметь разные роли в зависимости от того, какого клиента он просматривает.

    • Эта часть проста: клиент A -> менеджер проекта, клиент B -> аналитик QA и т. Д.
  2. Пользователь может входить в команды.

    • Пользователь А (член) Команды 1, Команды 2 и т. Д.
  3. На мой взгляд, это самая сложная часть. В зависимости от того, какой проект просматривается, пользователю могут быть назначены совершенно новые роли.

    • Клиент A -> Менеджер проекта - это настоящая роль пользователя A, но для проекта 1337 пользователь A будет аналитиком QA.

Есть ли хорошая, последовательная модель, чтобы справиться со всем этим, или мне нужно будет создать свою собственную?

Это не похоже на то, что это будет так просто, поскольку не похоже, что вы сможете воспользоваться преимуществами вложенных групп, если все проекты изолированы друг от друга, и пользователи будут иметь совершенно разные роли в каждый проект. Я бы рекомендовал пометить группы с помощью номера / имени проекта И роли в имени группы. Например:

  • Проект 1 PM
  • Контроль качества проекта 1
  • Проект 14:00
  • Project 2 QA
  • и т.д...

Таким образом, пользователь A может быть членом группы PM Project 1 и группы QA Project 2 и иметь доступ на основе этого членства.

Я не совсем уверен, какова цель команд и хотите ли вы разбить доступ / уведомления по командам или нет, так что это может потребовать немного дополнительных размышлений.