Разработка:storages/aclwarrants — различия между версиями
Alex (обсуждение | вклад) (убраны категории, добавляемые шаблоном) |
Yumeneco (обсуждение | вклад) (→Подробный формат полей в таблице:) |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 15: | Строка 15: | ||
* code - код роли по умолчанию ('root', 'teacher', 'manager', 'student', 'methodist', 'parent') | * code - код роли по умолчанию ('root', 'teacher', 'manager', 'student', 'methodist', 'parent') | ||
* parentid - id родительской доверенности (default:0) | * parentid - id родительской доверенности (default:0) | ||
− | * | + | * parenttype - тип связи с родителем (core - связь с системой, права берутся только из нее, ext - предполагает логику расширения доверенности выходящая за пределы родителя, sub - назначенная доверенность не выходящая за пределы возможностей родителя) |
+ | * isdelegatable - переназначение доверенности ( 1 (запретить) или 0 (разрешить) ) | ||
* description - пояснение (на основании чего была выдана доверенность) | * description - пояснение (на основании чего была выдана доверенность) | ||
* name - название доверенности русскими буквами | * name - название доверенности русскими буквами | ||
− | * status - | + | * status - список статусов указан в одноименном плагине рабочих процессов [[Разработка:workflows/aclwarrants | aclwarrants ]] |
+ | * ownerid - пользователь выдавший доверенность (0 - выдана системой) | ||
+ | * departmentid - id подразделения из таблицы [[Разработка:storages/departments | departments ]] | ||
+ | |||
+ | Пояснения по интерпретации данных: | ||
+ | * Поля linkptype, linkpcode, linktype, linkid предназначены для синхронизации списка поверенных (aclwarrantagents) с указанным объектом.\ | ||
+ | * Поле linktype в текущей интерпретации указывает на тип объекта, обозначенного linkptype, linkpcode и linkid. Для linlptype = storages оно всегда будет record. Другие варианты возможны, если связь выполняется по другому типу плагинов, например synс, но на данный момент их не реализовано. | ||
+ | * Важно, что поле linktype в текущей интерпретации указывает на характер самого ключевого объекта (например - запись с заданным id в таблице appointments), а не синхронизируемых связей, таким образом, нельзя создать доверенность, на которую бы подписывались все законные представители данного подразделения или клиенты образовательных контрактов данного подразделения, потому что во-первых для этого нет ключевого объекта (им мог бы стать тип контракта, но пока таких объектов нет), а во-вторых, нет способа отличить законных представителей от студентов при установлении связей. Изначально, поле linktype придумывалось именно для последнего случая и его текущая интерпретация - результат неверного прочтения ТЗ. Требуется провести ревизию данных и исправить интерпретацию поля. | ||
===Дополнительные методы:=== | ===Дополнительные методы:=== |
Текущая версия на 11:40, 18 февраля 2014
Плагин | |
Название | aclwarrants |
Тип | storages |
Таблица в базе данных
aclwarrants - cправочник доверенностей и мандатов. Подробные правила работы с полномочиями описаны в разделе: Управление доступом.
Подробный формат полей в таблице:
- id - номер записи
- linkptype - тип объекта к которому будет привязано полномочие (например назначение на должность - storages)
- linkpcode - код объекта к которому будет привязано полномочие (например назначение на должность - positions)
- linktype - говорит о типе связи. Тип связи "record" означает, что linkid сответствует номеру записи в linkptype/linkpcode, по умолчанию record
- linkid - id объекта к которому привязывается доверенность (должность, подразделение, и т. п.)
- code - код роли по умолчанию ('root', 'teacher', 'manager', 'student', 'methodist', 'parent')
- parentid - id родительской доверенности (default:0)
- parenttype - тип связи с родителем (core - связь с системой, права берутся только из нее, ext - предполагает логику расширения доверенности выходящая за пределы родителя, sub - назначенная доверенность не выходящая за пределы возможностей родителя)
- isdelegatable - переназначение доверенности ( 1 (запретить) или 0 (разрешить) )
- description - пояснение (на основании чего была выдана доверенность)
- name - название доверенности русскими буквами
- status - список статусов указан в одноименном плагине рабочих процессов aclwarrants
- ownerid - пользователь выдавший доверенность (0 - выдана системой)
- departmentid - id подразделения из таблицы departments
Пояснения по интерпретации данных:
- Поля linkptype, linkpcode, linktype, linkid предназначены для синхронизации списка поверенных (aclwarrantagents) с указанным объектом.\
- Поле linktype в текущей интерпретации указывает на тип объекта, обозначенного linkptype, linkpcode и linkid. Для linlptype = storages оно всегда будет record. Другие варианты возможны, если связь выполняется по другому типу плагинов, например synс, но на данный момент их не реализовано.
- Важно, что поле linktype в текущей интерпретации указывает на характер самого ключевого объекта (например - запись с заданным id в таблице appointments), а не синхронизируемых связей, таким образом, нельзя создать доверенность, на которую бы подписывались все законные представители данного подразделения или клиенты образовательных контрактов данного подразделения, потому что во-первых для этого нет ключевого объекта (им мог бы стать тип контракта, но пока таких объектов нет), а во-вторых, нет способа отличить законных представителей от студентов при установлении связей. Изначально, поле linktype придумывалось именно для последнего случая и его текущая интерпретация - результат неверного прочтения ТЗ. Требуется провести ревизию данных и исправить интерпретацию поля.