Разработка:storages/acl

Материал из DOF
Версия от 09:08, 14 декабря 2017; DShtolin (обсуждение | вклад) (Дополнительные методы:)
Перейти к: навигация, поиск
Плагин
Название 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' - право на любое изменение статуса для владельца объекта

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

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 в случае ошибки