[Закрыть]
 
popoff.donetsk.ua
Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного. /А.Энштейн/
Начало | Новости | Статьи | Форум | Опросы | Карта сайта | Обо мне
popoff.donetsk.ua - Статьи - Программирование - Модули - passport - passport.privilege - TODO-list
Я это делаю
Персональное меню
Голосование
Деньги, либо любимое занятие? Постоянный адрес этого вопроса
Ваш возраст (не обязательно):

Введите целое число от 3 до 99.
Почему? (не обязательно):
Другие вопросы
Поиск по сайту
Реклама
Обмен электронных валют
money.dn.ua
Статистика

TODO-list

Постоянный адрес статьи

Перечень доработок и исправлений, которые планируется внести в подсистему управления привилегиями администраторов

  • Сделать фильтр привилегий по группам пользователей: если администратор принадлежит некоторой группе, то у него можно управлять только привилегиями из некоторого списка привилегий. Настройка локальная для каждого администратора, управляющего привилегиями других администраторов.

  • При редактировании списков привилегий: выводить два варианта списков привилегий 1) для редактирования 2) результирующий список, с учетом всех наследований - для возможности визуального контроля получаемого списка привилегий.

  • Есть несколько иерархических объектов, и пользователю нужно дать доступ только к определённой (естественно, произвольной) комбинации этих объектов. Например, есть каталог a (и дочерние), каталог «б» (и дочерние) и каталог «в» (и дочерние). Нужно указать, что пользователь может, к примеру, переносить файлы из каталога «а» в каталог «б».

    Сейчас я для решения задачи формирую динамическую привилегию, в которой сначала записывается один каталог (из которого переносится), а потом - другой каталог (в который переносится). Например, если нужно переносить из каталога «а» в каталог «б», то привилегия звучит так:
    text.move.a.б
    А если я хочу разрешить переносить из каталога «а» в любой другой каталог, то привилегия звучит так:
    text.move.a

    Во-первых, никак нельзя задать, что админ может переносить из любого каталога в каталог «б».

    Во-вторых, привилегия
    text.move.a.б
    разрешает переносить не только из каталога «а» в каталог «б», но и из каталога «а/б» в любое другое место.

    В-третьих привилегия
    text.move.a.б
    не разрешает переносить из каталога «а/в» в каталога «б», так как для этого имя привилегии должно было бы быть таким:
    text.move.а.в.б
    а это имя не является дочерним по отношению к
    text.move.a.б
    по естественным причинам.

    Задачу можно было бы решить по-другому. Например, разбив на привилегии откуда админ может переносить и куда админ может переносить. Например,
    text.move.from.а - может переносить из «а»
    text.move.to.б - может переносить в «б»
    Это как бы решает приведённые выше «во-первых», «во-вторых» и частично - «в-третьих», но имеет свои недостатки.

    Например, если я хочу сказать, что админ может переносить из «а» в «б», а из «в» в «г», то я должен буду задать такой набор привилегий:
    text.move.from.а
    text.move.from.в
    text.move.to.б
    text.move.to.г
    но такой набор привилегий также разрешит переносить из a в «г» и из «в» в «б», что, вообще-то, я хотел запретить.

  • Если у Вас есть какие-либо свои соображения по поводу того, как доработать эту систему, все Ваши предложения с радостью принимаются в форуме!

Последняя модификация: 29.09.06 13:08

Обсуждение статьи в форуме

Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>

29.09.06 11:43 Select


Есть несколько иерархических объектов, и пользователю нужно дать доступ только к определённой (естественно, произвольной) комбинации этих объектов. Например, есть каталог “a” (и дочерние), каталог «б» (и дочерние) и каталог «в» (и дочерние). Нужно указать, что пользователь может, к примеру, переносить файлы из каталога «а» в каталог «б».
...
Во-первых, никак нельзя задать, что админ может переносить из любого каталога в каталог «б».
...
Во-вторых, привилегия
...
В-третьих привилегия
...



Можно применить динамические привилегии следующей конструкции:

Надо задать чёткое соответствие между from и to, например так:

text.move.from.'number'.'folder'
text.move.to.'number'.'folder'

соответствие по номеру 'number' после from и to.



Привилегия с text.move.from.'number'.'folder' без соответствующего to, означает что администратор может переносить из директории 'folder' в любую другую.

Привилегия с text.move.to.'number'.'folder' без соответствующего from, означает что администратор может переносить из любой директории в 'folder'.

Привилегии text.move.from.'number' (без соответствующего to.'number') или text.move.from равносильны и позволяют админу переносить файлы ОТКУДА угодно

Привилегии text.move.to.'number' (без соответствующего from.'number') или text.move.to равносильны и позволяют админу переносить файлы КУДА угодно

и т.д.

Просмотреть все комментарии в режиме форума. Всего комментариев: 1
Не проходите мимо! Оставьте Ваш комментарий в форуме! >>>