WackoWiki: YuliaShabunio/WackoACL ...

Home Page | Изменения | Новые Комменты | Пользователи | Каталог | Регистрация | Вход:  Пароль:  

Попытка систематизации проблемы наследования ACL


ACL надо наследовать. Вопрос – как это сделать.

Оглавление документа

Варианты поведения

Как сейчас

ACL наследуется от родительской страницы в момент создания.


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


Тотальный контроль

ACL наследуется от родительской страницы в момент создания.


В последствии он может быть изменен.


Но при изменении в ACL родительской страницы все подстраницы автоматически получают тот же ACL вместо того, что был.


Наследуем унаследованное

ACL наследуется от родительской страницы в момент создания.


В последствии он может быть изменен.


При изменении в ACL родительской страницы правятся только те подстраницы, ACL которых не менялся с момента создания или был возвращен в состояние, равное состоянию в момент создания.


Родитель плюс пис

ACL наследуется от родительской страницы в момент создания.


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


Ссылка с ограничением

Если акл данной страницы содержит ссылку на другую страницу, то акл оттуда добавляется к аклу данной страницы.
Если в ACL есть ссылка, то:

  1. Она должна быть только одна.
  2. Она должна быть во всех трех типах прав.

Это значит, нельзя писать
@Page1
@Page2


или
read ("@Page1'), write ("@Page2").


Т.е. если Page1, то в r/w/c Page1 и только Page1.


YuriMakarov Почему такие ограничения?
Мне кажется они совсем не обязательны.
Технически реализовать только 1 список проще, несколько чуть сложнее (п1).
Пункт 2 тоже необязателен, к примеру – редактирование только автору, просмотр некоторой группе.

Варианты реализации

Как сейчас

Для каждой страницы хранится отдельный ACL в базе данных.
Хорошо реализует сценарии

Неплохо реализует

Почти невозможно реализовать


Расчет ACL на лету

Для каждой страницы хранится отдельный ACL в базе данных. Но при расчете реального ACL учитываются в том числе права всех родителей
Хорошо реализует сценарии

Неплохо реализует

Почти невозможно реализовать

Можно, но зачем?


Превратим Ваку в дерево

База данных преобразована так, чтобы легко было определить родительскую страницу.


Хорошо реализует сценарии

Неплохо реализует

Можно, но зачем?

Почти невозможно реализовать


Наборы прав

В отдельной таблице хранятся «наборы прав». В каждой странице лежит только ссылка на какой-нибудь набор.

Хорошо реализует сценарии

Неплохо реализует

Почти невозможно реализовать




Страницы, ссылающиеся на данную: AlexKulikov/WackoACL
WackoIdeas


 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]
Donate
Время работы: 1.035 s
Использовано памяти: 2.811 Mb