Разработка:Управление доступом

Материал из DOF
Версия от 23:40, 13 апреля 2011; Ilya (обсуждение | вклад) (Создана страница с описанием управления полномочиями)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Управление доступом

На этой странице содержится вся основная информация по управлению доступом. "Электронный Деканат" имеет собственную систему полномочий, которая дополняет систему полномочий 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)