Права доступа

Z Freenetis Wiki
Přejít na: navigace, hledání


Описание реализации управления правами FreenetIS

Текущие права доступа для FreenetIS основаны на PHP GACL. Knihodna сама была удалена, но системные таблицы поддерживаются.

Описание SQL таблиц библиотеки Phpgacl

В PhpGacl все построено на объектах ACO, ARO и АХО.

'ACO' - операции объектов

'ARO' - объекты (или группы объектов), которые выполняют индивидуальные операции (АСО)

АХО - объекты (или группы объектов), над которыми индивидуальные ARO выполняют операции (ACO)

acl

Таблица определения индивидуальных правил доступа.

Она содержит столбцы id, section_value, allow, enabled, return_value, note, updated_date.

ID - идентификатор, важен для соединения с ACO, ARO и ОВБ

section_value - имя секции, где правила

allow - 1 => Правило разрешает операции, 0 => Правило запрещает операции

Enabled - 1 => правило включено, 0 => правило отключено

return_value - Я еще не знаю

Note - комментарии к правилу (например Администраторы могут делать все)

Updated_date - дата последнего обновления правил

acl_sections

Таблица определения отдельных разделов Правил.

По умолчанию в PhpGacl две секции - System и User. FreenetIS использует только User.

Он содержит столбцы id, value, order_value, name and hidden

id - идентификатор, более или менее бесполезный, потому что правила относятся к разделам со значениями (значение)

значение - короткое имя без пробелов, используется для назначения отдельных списков управления доступом на разделы

order_value - Я еще не знаю

Название - длинные названия, описания

скрытые - 0 => Раздел виден, 1 => скрыт

acl_seq

Таблица единственной целью котороq является в настоящее время хранение последнего ID таблицы ACL.

PhpGacl (Бог знает почему) не использует автоприращение в таблицах.

Содержит столбец ID.

'ID' - последняя ID в таблице ACL

асо

Таблица определения отдельных объектов ACO. В FreenetIS имеется ACO либо для оказания меню (разделы меню), либо ACO для общих операций (раздел freenetis) - view_all, view_own, edit_all, edit_own, delete_all, delete_own, new_all, new_own, confirm_all, confirm_own ... использованы в 'только' с объектами АХО.

Она содержит столбцы id, section_value, value, order_value, name and hidden.

id - несущественный идентификатор (для подключения к таблице ACL используется aco_map значение)

section_value - название раздела определенного в aco_sections

value - короткое имя без пробелов, используемое для назначения ACO на разделы и подключения к каждому правилу ACL в aco_map

order_value - Я еще не знаю

name - длинные названия, описания

hidden - 0 => Раздел виден, 1 => скрыт

aco_map

Соединяет ACO объекты с различными правилами ACL. ACO это один (из трех ACO, ARO и АХО) не в состоянии кластеризироваться в группах, потому что нет никакой другой таблицы aco_groups_map.

Содержит столбцы acl_id, section_value a value.

'Acl_id' -

'Section_value' -

value -

aco_sections

Раздел для каждого ACO , FreenetIS использует только два : Меню - для объектов ACO на участке меню, а затем freenetis - определение общих операции ACO ( просмотр, редактирование , удаление и подтверждение) .

Он содержит столбцы id , value , order_value , name and hidden .

id - идентификатор раздела ( не используется)

value -имя раздела (в нашем меню и freenetis )

Order_value - Я еще не знаю

name - описание раздела

hidden - 0 = > Раздел виден , 1 => скрыт

aro_groups_map

присваивает отдельным группам пользователей ACL правила.

Пример:

Создать правило " кандидаты в члены и постоянные члены могут сделать XYZ" .

Это правило будет в " ACL " представлено ​​новой строкой с ID = 27 , в котором хранится значение "Разрешить" ;

Если у " полноправных членов " ID = 22 и тех, кто заинтересован в членстве ID = 23 , то в таблице aro_groups_map при создании этого правила будет две новые записи :

acl_id | group_id


27 | 22

27 | 23

axo_groups_map

Подобно aro_groups_map , но АХО