[Закрыть]
 
popoff.donetsk.ua
Привязанность, а не симпатия — вот что нужно обществу.
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Форум - Программирование на PHP - В системе управления привилегий не хватает управлегия группами пользователей

В системе управления привилегий не хватает управлегия группами пользователей

форумы popoff.donetsk.ua
Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Автор Сообщение
Select
Фёдор Мечников
Сен, 2006
Сообщений: 16
Select url://forum.message:1593
В системе управления привилегий не хватает управлегия группами пользователей

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

Можно поступить следующим образом. Уже к существующему понятию группы добавить ещё два: «базовая роль группы» («брг») и «вторичная роль группы» («врг»). При формировании списка привилегий пользователя, итоговый список привилегий пользователя, до учёта привилегий группы, рассматривается как «предварительная роль пользователя» («прп»). Далее производим наследование «брг»->«прп»->«врг».

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


~~~~~ 20 Сен 2006, 18:44 ~~~~~

Это также даст возможность реализовать модель http://www.citforum.ru/programming/digest/access04.gif

popoff
Yuri
Июл, 2004
Сообщений: 923
popoff url://forum.message:1594

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

Selectфорумы popoff.donetsk.ua

Нет, ограничения эти мне не ясны.

Если посмотреть на приведённую Вами картинку, можно легко заметить, что понятие роль и группа - взаимозаменяемы. Фактически, «группа» и «роль» является дублем одного и того же явления. Я у себя назвал роли - ролями, а не группами потому, и только потому, что для слова «группа» у меня есть другой смысл. Хотя, мог бы назвать эту сущность словом «группа», а для иерархии администраторов придумать другое слово.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.
Select
Фёдор Мечников
Сен, 2006
Сообщений: 16
Select url://forum.message:1597

Обратимся к вышеприведённому примеру. Моей системой пользуются разные компании и у каждой компании большое количество пользователей, и каждого пользователя свой набор привилегия (естественно, в рамках его компании). Как я могу (не прибегая к предложенной мною схеме управления группой) временно запретить всем пользователям одной компании какую-то привилегию, допустим, на неделю, если в компании 1000 пользователей и много разных ролей, и разрешение этой привилегии у разных пользователей в разных родительских и дочерних ролях?
Либо, как разрешить/запретить привилегию всем пользователям, кроме тех, у кого эта привилегия явно разрешена/запрещена (опять же, временно, чтобы потом можно было легко вернуться к исходному состоянию)?

popoff
Yuri
Июл, 2004
Сообщений: 923
popoff url://forum.message:1598

Select,
Приведённая Вами задача не решается введением «групп» так, как это описано в той статье.

Вообще, раз уж для Вас так важен термин - «группа» или «роль», то я предпочёл бы отказаться от обоих терминов и говорить о «списке привилегий», поскольку Вы в термины «группа» и «роль» вкладываете свои, нужные Вам, но нигде более не описанные смыслы, либо эти смыслы не имеют отличий с точки зрения фактической реализации двух идей. Термин «список привилегий», мне кажется, должен быть ясен и не содерит в себе подразумеваемых возможностей, которые есть в «группах» и «ролях».

Нельзя запретить или разрешить привилегию сразу всем пользователям. Можно только тем пользователям, которые наследуют некоторый список привилегий (то есть, роль в моём случае). Если в этом списке привилегий разрешить или запретить привилегию, то она разрешится или запретится для всех пользователей, которые наследуют этот список. За исключением, естественно, тех пользователей, у которых эта привилегия разрешена или запрещена в их собственном списке привилегий администратора.

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

Более того, в моём случае эту задачу Вы можете решить огромным количеством разных способов. Вы можете использовать как простое наследование, так и дружественное наследование. А можете использовать и комбинацию этих способов, когда Вы говорите, что для всех руководителей привилегия разрешена, но для начальников и мастеров, которые дружественно наследуют роль, к примеру «наблюдающий», эта привилегия может быть разрешена или запрещена в отдельном порядке.

________________________________
Если не будет деревьев — нам нечем будет дышать, если вода загрязнится — нам нечего будет пить.

Внимание! Этот топик устарел. Пожалуйста, создайте новый топик, чтобы задать интересующий Вас вопрос.

Страницы: [1]
<< Новый  |  Старый >>  |  Ответ не возможен
Вход
Поиск[?]:
Обмен электронных валют
money.dn.ua