Разработка:Управление доступом
Управление доступом
На этой странице содержится вся основная информация по управлению доступом. "Электронный Деканат" имеет собственную систему полномочий, которая дополняет систему полномочий moodle, и позволяет реализовать более гибкое управление правами.
Общая информация
Плагины необходимые для системы управления доступом
Общие правила и требования
- Сторонние плагины могут зависеть от плагинов прав доступа, а плагины прав доступа не могут зависеть от остальных плагинов, и извлекать информацию из них (за исключением события установки/обновления плагина).
- Каждый плагин, предоставляющий права доступа должен реализовывать интерфейс dof_storage_acl_interface
- Список и структура прав доступа описывается в функции acldefault()
- Формат массива: (дописать)
- Все плагины, отвечающие за работу с полномочиями имеют префикс acl.
- Все функции в сторонних плагинах, которые управляют правами доступа должны иметь префикс acl
- В плагинах типа im и modlib следует для проверки стандартных прав доступа обращаться к плагинам storage.
Стандартные права доступа для хранилищ и рабочих процессов
В каждом плагине storage для определения уровня доступа к объекту следует использовать стандартные обозначения:
- view - право просматривать объект из таблицы
- edit - право редактировать объект из таблицы
- create - право создавать новый объект в таблице
- delete - право удалять объект из таблицы
- viewbase - право просматривать сокращенную информацию по объекту (например при просмотре списка записей)
- viewextended - право просматривать расширенную информацию по объекту (все поля)
- edit:имя_поля - право редактировать отдельное поле
- view:имя_поля - право просматривать отдельное поле
- changestatus:from:статус - изменять статус с указанного
- changestatus:to:статус - изменять статус на указанный
- changestatus:all - вообще изменять статус
(дописать про возможность указать отношение)
Как происходит процесс установки прав
При установке, обновлении или удалении любого плагина проверяется, предоставляет ли он собственные права, и если да - то запускаются соответствующие функции. (создать ссылку на acl, описать там перехват событий установки плагина и весь процесс)
Правила работы с правами доступа
Полномочия
Мандаты и доверенности
Синхронизация
Здесь описаны плагины, которые должны синхронизироваться с таблицей доверенностей.
storage/positions
Каждая должность (position) может сопоставляться с доверенностью (warrant). Должности синхронизируются с доверенностями вручную, при помощи специальной формы в плагине im/positions.
Применение полномочий
Синхронизация
Здесь описаны плагины, которые должны синхронизироваться с таблицей применения полномочий.
storage/appointments
Каждое назначение на должность (appointment) должно сопоставляться с одним или несколькими применениями полномочий (aclwarrantagents)