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

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

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

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

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

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

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

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

1 ответ

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

  • Проект 1 вечера
  • Проект 1 QA
  • Проект 2 вечера
  • Проект 2 QA
  • так далее...

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

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

Другие вопросы по тегам