Когда использовать систему разрешений для одной или нескольких групп? - PullRequest
0 голосов
/ 22 января 2010

Насколько я знаю, существует два основных стиля систем разрешений. Я хотел бы знать, действительно ли опция для нескольких групп стоит дополнительных хлопот или нагрузки на систему (больше запросов). Похоже, что при правильном дизайне приложений пользователям не нужно иметь более одного класса - хотя мои приложения никогда не делали его настолько большим, чтобы я знал.

Сэм является участником - он не может получить доступ к admin содержимому. Джо является администратором - он может изменять автора сообщений. Один пользователь входит в одну группу и группирует каскадные разрешения. Подумайте WordPress.

  • Многогрупповая пользовательская система (пользователи с группами / ролями)

Сэм является участником и модератором - но он по-прежнему не может получить доступ к содержимому администратора. Каждый пользователь может иметь много групп , которые объединяются, чтобы показать, что он может / не может делать.

Почему бы просто не назначить Сэма модератором, а все модераторы наследуют привилегии участника? Кроме того, какой из них лучше работает с ACL?

Ответы [ 2 ]

1 голос
/ 22 января 2010

Возможно, что две группы могут наследовать разрешение от одной нижней группы, но эти две группы не могут совместно использовать разрешения.

Скажем, например, у вас есть пользователи, которые могут публиковать сообщения на форумах.

Тогда у вас есть люди, отвечающие за модерирование пользователей. Эти люди могут сбрасывать пароли, блокировать пользователей, продвигать пользователей и т. Д. Кроме того, они могут публиковать сообщения на форумах.

У вас есть другая группа, отвечающая за модерирование контента. Они могут изменять / удалять сообщения, изменять их порядок и т. Д., Но они ничего не могут сделать с учетными записями пользователей. Кроме того, они могут публиковать сообщения на форумах.

Тогда у вас есть администраторы, которые могут сделать все это.

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

0 голосов
/ 22 января 2010

Одно приложение, над которым я недавно работал, включало несколько «рабочих областей», к каждой из которых пользователь может получить доступ. Эти рабочие области, например, A, B и C, не связаны иерархически, поэтому пользователь может иметь доступ к A и C, но не к B или любой другой комбинации. В таком случае наследование не помогает, и пользователю необходимо назначить несколько ролей.

...