Разработка:storages/acl — различия между версиями
Alex (обсуждение | вклад) (убраны категории, добавляемые шаблоном) |
DShtolin (обсуждение | вклад) (→Дополнительные методы:) |
||
Строка 39: | Строка 39: | ||
===Дополнительные методы:=== | ===Дополнительные методы:=== | ||
+ | |||
+ | ===='''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 в случае ошибки | ||
+ | |||
[[Категория:Управление доступом]] | [[Категория:Управление доступом]] |
Версия 09:08, 14 декабря 2017
Плагин | |
Название | 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 в случае ошибки