Разработка:storages/acl — различия между версиями

Материал из DOF
Перейти к: навигация, поиск
(Перехватываемые события)
 
Строка 54: Строка 54:
 
  ! Пояснение
 
  ! Пояснение
 
  |-
 
  |-
| departments
 
 
  | acl
 
  | acl
 +
| storage
 
  | insert
 
  | insert
 
  |
 
  |

Текущая версия на 10:51, 2 марта 2018

Плагин
Название acl
Тип storages


Кеширование

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

Таблица в базе данных

acl - справочник полномочий. Подробные правила работы с полномочиями описаны в разделе: Управление доступом.

Подробный формат полей в таблице:

  • id - номер записи
  • code - код полномочия (текстовое, необязательное, при указании кода проверяется уникальность)
  • plugintype - тип плагина (im, storage, workflow, sync, modlib)
  • plugincode - код плагина
  • objectid - id объекта к которому дается доступ (или 0 если доступ дается ко всем объектам)
  • aclwarrantid - id записи из таблица aclwarrants

Стандартные полномочия для хранилищ и рабочих процессов

В каждом плагине storage для определения уровня доступа к объекту следует использовать стандартные обозначения:

  • view - право просматривать объект из таблицы
  • edit - право редактировать объект из таблицы
  • create - право создавать новый объект в таблице
  • delete - право удалять объект из таблицы
  • viewbase - право просматривать сокращенную информацию по объекту (например при просмотре списка записей)
  • viewextended - право просматривать расширенную информацию по объекту (все поля)
  • edit:имя_поля - право редактировать отдельное поле
  • view:имя_поля - право просматривать отдельное поле
  • changestatus - вообще изменять статус (с любого на любой)
  • changestatus:from:статус - изменять статус с указанного
  • changestatus:to:статус - изменять статус на указанный


Также при создании права можно указать отношение, которое указанный пользователь имеет к объекту, на который назначены права. Отношение указывается через прямой слеш "/".

Примеры:

  • 'edit/owner' - право редактировать объект для владельца.
  • 'changestatus:all/owner' - право на любое изменение статуса для владельца объекта

События

В этом разделе описан список всех событий, которые генерируются, перехватываются и обрабатываются этим плагином.

Перехватываемые события

Таблица событий, которые перехватывает этот плагин
Тип плагина Код плагина Код события Доп. данные Пояснение
acl storage insert Сбрасывается кеш хранилище прав
acl storage delete Сбрасывается кеш хранилище прав

Генерируемые события

-


Дополнительные методы:

get_persons_acl_by_code($plugintype, $plugincode, $aclcode, $departmentid = 0, $objectid = 0)

Получить список персон имеющих указанное полномочие

Аргументы:

  • int $plugintype - тип плагина деканата
  • int $plugincode - код плагина деканата
  • int $aclcode - код права
  • int $departmentid - id подразделения
  • int $objectid - id объекта

Возвращает значение:

  • array|false - массив записей из БД, содержащих идентификатор пользователя и подразделения или false в случае ошибки