2012-02-17 2 views
1

Это очень распространенное явление в разработке веб-приложений. Я делал это несколько раз.Как спроектировать пользователей, роли и схему разрешений?

Но я застрял в своем текущем проекте, проектирующем схему для этого.

Дело в том, что мое приложение будет иметь трех типов пользователей в начале, например. SuperAdmin, Admin и обычного пользователя.

Я планирую иметь эти типы пользователей как роли, такие как ROLE_SUPERADMIN, ROLE_ADMIN и ROLE_USER.

Система может иметь много ролей. На самом деле SuperAdmin и Admins создают роли и назначают эти роли пользователям.

Проблема заключается в том,

Суперадминистраторы будет иметь p1, согласия автора Р2 и Р3. Супер админы могут создавать другие супер админы. Супер админы могут создавать админы. Super Admins не добавит пользователей в систему.

Администраторы могут иметь разрешения p5, p6 и p7. Администраторы не могут создавать других админов. Администраторы могут создавать других пользователей. Админы могут также создавать роли, такие как say Report viewers.

Супер администратор с разрешениями p1, p2 и p3 должен иметь возможность создавать админов с разрешениями p5, p6 и p7. Который я не совсем понимаю.

Как правило, если у супер адмиминов нет разрешений p5, p6 и p7, как они могут создавать админы с этими разрешениями?

Пожалуйста, помогите мне с надлежащим дизайном с этим.

Ниже представлен проект, который у меня есть.

USER
Идентификатор_пользователя

Идентификатор роли

роль
RoleName Идентификатор роли

РАЗРЕШЕНИЯ
PermissionID PermissionName

ROLE_PERMISSION PermissionID Идентификатор роли

Спасибо.

+0

Нет comme еще нет. Я думал, что это очень распространенное явление в разработке веб-приложений. Кто-то, должно быть, столкнулся с такой ситуацией в прошлом. Пожалуйста помоги. – ashishjmeshram

+0

Это действительно разочаровывает. Большинство вопросов, которые вы задаете в SO в эти дни, остаются без ответа. Даже после раздачи щедрот. :( – ashishjmeshram

+0

привет? Кто-то ответьте. – ashishjmeshram

ответ

2

Это загруженный вопрос, настройка членов, ролей и т. Д. - это не маленький подвиг. Я предлагаю вам взглянуть на уже написанные библиотеки, чтобы узнать, могут ли они удовлетворить ваши потребности. Для чего вам следует начинать поиск, это «Списки контроля доступа» (acl) для краткости.

2

После разработки такой базы данных;

Я установил некоторые сценарии для форума, портала и CMS и проанализировал, как они справились с ситуацией, затем извлекли схемы БД и использовали их в качестве ссылки.

Может быть, это может помочь

2

Вы должны смотреть в рамки и стандарты, такие как XACML авторизации - XACML позволяет определять разрешение на основе нескольких атрибутов, так что вы не до конца в роли взрыва. Таким образом, вместо создания роли manager_in_tx_with_gold_status, вы можете создать правила, например:

пользователь с ролью = менеджером и местоположением = TX может сделать действие = вид на ресурсах ....

Есть несколько решения для поставщиков и решения с открытым исходным кодом. Проверьте страницу Википедии и домашнюю страницу эталона для получения дополнительной информации:

У меня есть канал Youtube тоже, что говорит о XACML:

Смежные вопросы