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

Материал из DOF
Перейти к: навигация, поиск
(Подробный формат полей в таблице:)
 
(не показано 7 промежуточных версий 3 участников)
Строка 5: Строка 5:
  
 
===Таблица в базе данных===
 
===Таблица в базе данных===
''aclwarrants'' - cправочник доверенностей и мандатов.
+
''aclwarrants'' - cправочник доверенностей и мандатов. Подробные правила работы с полномочиями описаны в разделе: [[Разработка:Управление_доступом | Управление доступом]].
  
 
====Подробный формат полей в таблице:====
 
====Подробный формат полей в таблице:====
 
* id - номер записи  
 
* id - номер записи  
 
 
* linkptype - тип объекта к которому будет привязано полномочие (например назначение на должность - storages)
 
* linkptype - тип объекта к которому будет привязано полномочие (например назначение на должность - storages)
* linkpcode - код объекта к которому будет привязано полномочие (например назначение на должность - posotoions)
+
* linkpcode - код объекта к которому будет привязано полномочие (например назначение на должность - positions)
* linktype - говорит о типе связи. Тип связи "RECORD" означает, что linkid сответствует номеру записи в linkptype/linkpcode, по умолчанию RECORD
+
* linktype - говорит о типе связи. Тип связи "record" означает, что linkid сответствует номеру записи в linkptype/linkpcode, по умолчанию record
 
* linkid - id объекта к которому привязывается доверенность (должность, подразделение, и т. п.)
 
* linkid - id объекта к которому привязывается доверенность (должность, подразделение, и т. п.)
 
* code - код роли по умолчанию ('root', 'teacher', 'manager', 'student', 'methodist', 'parent')  
 
* code - код роли по умолчанию ('root', 'teacher', 'manager', 'student', 'methodist', 'parent')  
 
* parentid - id родительской доверенности (default:0)
 
* parentid - id родительской доверенности (default:0)
* noextend - запретить переназначение доверенности ( 1 (запретить) или 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 придумывалось именно для последнего случая и его текущая интерпретация - результат неверного прочтения ТЗ. Требуется провести ревизию данных и исправить интерпретацию поля.
  
 
===Дополнительные методы:===
 
===Дополнительные методы:===
  
  
 
+
[[Категория:Управление доступом]]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
[[Категория:Разработка]]
 
[[Категория:Плагины_storages]]
 

Текущая версия на 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 придумывалось именно для последнего случая и его текущая интерпретация - результат неверного прочтения ТЗ. Требуется провести ревизию данных и исправить интерпретацию поля.

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