Справка/Управление-правами

Управление правами


Используется довольно интересная система управления правами.


Имеется функция HasAccess($privilege, $tag), которая обращается к ThisUserHasAccess($privilege, $tag), она в свою очередь к UserHasAccess($user, $privilege, $tag), которая спрашивает GroupHasAccess($group, $privilege, $tag).


Наконец, GroupHasAccess($group, $privilege, $tag) проверяет, имеет ли группа $group право на $privilege по адресу $tag.


При этом для адреса действует правило, позволяющее чётко отделять дерево страниц от страницы – если в конце есть /, то считаем это деревом, если нет – страницей.
Тег * определяет любую страницу и любое дерево страниц.


Помимо стандартных $privilege можно определять любые свои, причём наличие префикса _all указывает на то, что эта привилегия не зависит от страницы и при проверке прав будет считаться, что задан тег *. Например, право на добавление новых пользователей или на добавление новостей лучше записать через _all. Это правило добавлено для оптимизации.


Добавление правил производится с помощью AddGroupRule($group, $privilege, $tag, $allow):

  • $group – группа
  • $privilege – привилегия
  • $tag – адрес (к адресу применяется NpjTranslit с сохранением последнего /)
  • $allow – разрешить или запретить (для разрешения выставляется 1, для запрета 0)

Основные привилегии

  • read – читать
  • write – записывать
  • comment – комментировать
  • rename – переименовывать
  • upload – загружать файлы

Вам оказалась полезна эта статья? Если не трудно – дайте свою оценку тому, насколько предложенный здесь материал вам помог=)


Комментарии:

Нет комментариев, будьте первым!

Добавить комментарий:
Представьтесь:


 
Подразделы
Раздел не содержит подстраниц.


Комменты