Разработка:Управление доступом — различия между версиями
Ilya (обсуждение | вклад) (→Полномочия (acl): список стандартных полномочий перенесен в плагин acl) |
Ilya (обсуждение | вклад) м (→Общие правила и требования) |
||
Строка 12: | Строка 12: | ||
=== Общие правила и требования === | === Общие правила и требования === | ||
* Сторонние плагины могут зависеть от плагинов прав доступа, а плагины прав доступа не могут зависеть от остальных плагинов, и извлекать информацию из них (за исключением события установки/обновления плагина). | * Сторонние плагины могут зависеть от плагинов прав доступа, а плагины прав доступа не могут зависеть от остальных плагинов, и извлекать информацию из них (за исключением события установки/обновления плагина). | ||
− | * Каждый плагин, предоставляющий права доступа должен | + | * Каждый плагин, предоставляющий права доступа должен описывать права в функции acldefault() |
− | |||
** Формат массива: | ** Формат массива: | ||
<pre> | <pre> | ||
Строка 25: | Строка 24: | ||
* Все функции в сторонних плагинах, которые управляют правами доступа должны иметь префикс acl | * Все функции в сторонних плагинах, которые управляют правами доступа должны иметь префикс acl | ||
* В плагинах типа im и modlib следует для проверки стандартных прав доступа обращаться к плагинам storage. | * В плагинах типа im и modlib следует для проверки стандартных прав доступа обращаться к плагинам storage. | ||
− | |||
− | |||
=== Как происходит процесс установки прав === | === Как происходит процесс установки прав === |
Версия 15:34, 18 апреля 2011
Управление доступом
На этой странице содержится вся основная информация по управлению доступом. "Электронный Деканат" имеет собственную систему полномочий, которая дополняет систему полномочий moodle, и позволяет реализовать более гибкое управление правами.
Общая информация
Плагины необходимые для системы управления доступом
- acl - список полномочий. Хранит информацию о том в каком плагине какие полномочия существуют.
- aclwarrants - Мандаты и доверенности.
- aclwarrantagents - Применение доверенностей. Определяет, каким пользователям какие доверенности выданы.
Общие правила и требования
- Сторонние плагины могут зависеть от плагинов прав доступа, а плагины прав доступа не могут зависеть от остальных плагинов, и извлекать информацию из них (за исключением события установки/обновления плагина).
- Каждый плагин, предоставляющий права доступа должен описывать права в функции acldefault()
- Формат массива:
array( 'view' => array('teacher', 'manager'), 'edit' => array('manager') );
В качестве ключей указывается то право, которое назначается, а значением служит массив ролей, которые получают это право. Список стандартных ролей можно посмотреть в плагине aclwarrants
- Все плагины, отвечающие за работу с полномочиями имеют префикс acl.
- Все функции в сторонних плагинах, которые управляют правами доступа должны иметь префикс acl
- В плагинах типа im и modlib следует для проверки стандартных прав доступа обращаться к плагинам storage.
Как происходит процесс установки прав
При установке, обновлении или удалении любого плагина, если он предоставляет права доступа - то в функциях upgrade(), delete(), и install() нужно вызывать функцию save_roles() плагина acl .
Правила работы с правами доступа
Полномочия (acl)
- Полномочия не имеют статусов, поэтому при удалении плагина все полномочия, принадлежащие ему также физически удаляются из таблицы
- Для хранилищ и рабочих процессов существуют стандартные полномочия
Мандаты и доверенности (warrants)
- Действия при удалении мандата или доверенности
- Основным способом удаления мандата следует считать перевод записи в статус "archive"
- Все дочерние доверенности и мандаты также перестают действовать
- Прекращают действия все применения полномочий ( aclwarrantagents ) которые были назначены указанным мандатом.
- При установке прав новым плагином все новые права добавляются к стандартным доверенностям
- Плагины не могут добавлять свои доверенности при установке
- Стандартные доверенности не могут быть назначены пользователям
- Если запрещается наследование для доверенности, которую раньше можно было наследовать - то старые дочерние доверенности продолжают свое действие, но новые создать нельзя
Синхронизация
Здесь описаны плагины, которые должны синхронизироваться с таблицей доверенностей.
Применение полномочий (warrantagents)
- При прекращении действия доверенности, применение полномочия прекращает действовать (переводится в статус archive)
- При истечении срока действия применение полномочия переводится в статус archive
Синхронизация
Здесь описаны плагины, которые должны синхронизироваться с таблицей применения полномочий.