Идентификаторы и группы доступа
Материал из AOW
Каждый ресурс системы AOW–SC3, будь то дата-блок контента или какой-нибудь функциональный модуль, имеет свой уникальный идентификатор res_id. res_id состоит из двух частей, указывающих тип ресурса и числовой номер или может быть просто равным 0. Например, дата-блоки контента могут иметь следующие res_id: “co_0”, “co_21”, “co_31” или “0”, где “co” обозначает, что res_id принадлежит дата-блоку контента.
Система AOW-SC3 использует маркировку res_id для разграничения прав и задания привилегий, но если значение res_id равно “0“, то никакие специальные права для использования соответствующего ресурса не требуются, все остальные res_id требуют специальных привилегий.
Идентификаторы res_id объединяют в группы доступа для удобства работы. Группы доступа используются для задания разрешений записи/чтения относительно ресурсов системы. Пример группы доступа:
Авторизованные пользователи, имеющие доступ к новостным лентам
read + co_7 Новостная лента 1 read + co_8 Новостная лента 2 read + co_9 Новостная лента 3
Данная группа доступа содержит разрешения чтения дата-блоков контента имеющих res_id = “co_7”, “co_8” и “co_9”. Все пользователи системы, состоящие в этой группе доступа автоматически получают права чтения дата-блоков с указанными res_id. Заметим, что для удобства использования, группу доступа можно снабжать многострочным названием. Каждая группа имеет свой номер, лежащий в диапазоне от 1 до 999999. Управляет группами доступа администратор системы, имеющий соответствующие полномочия. Разрешение/запрещение доступа чтения/записи к res_id происходит в группе следующим образом, в группу записывается специальная строка:
read + res_id добавление прав на чтение res_id read – res_id запрещение прав на чтение res_id write + res_id добавление прав на запись res_id write – res_id запрещение прав на запись res_id
Таких строк в группе может быть неограниченное количество, но, как правило, их требуется не больше 20. Заметим также, что запрещение прав чтения/записи является приоритетным, как это работает, будет рассмотрено далее. Каждое действующее лицо в системе может состоять в одной или нескольких группах доступа, либо не состоять в группах доступа вообще. Различают три вида действующих лиц – Администраторы (авторизовавшиеся в панели администратора), Посетители (зашедшие по специальной ссылке, либо принадлежащие определенному IP адресу), Пользователи (авторизовавшиеся по E-mail). Администратор и посетитель могут быть привязаны только к одной группе доступа, пользователь к неограниченному количеству. Заметим, что один человек может быть администратором, посетителем и пользователем одновременно, и, соответственно, может состоять в нескольких группах доступа одновременно. Рассмотрим пример: Допустим, имеется несколько групп доступа:
2 Права управления разделом “товары”
read + co_1 товары 1й кат write + co_1 товары 1й кат read + co_2 товары 2й кат write + co_2 товары 2й кат
3 Права просмотра справочников
read + co_9 справочники
4 Права просмотра для покупателя 1й категории
read + co_1 товары 1й кат read – co_2 товары 2й кат read – co_3 товары 3й кат
Мы авторизовались в панели администрирования, и попали в группу 2 (как администратор), но мы также являемся и пользователями системы, после авторизации как пользователи, получившие принадлежность к группам 3 и 4. Рассмотрим полученные нами права. До авторизации как пользователи мы могли просматривать и редактировать товары 1й и 2й категории (”co_1”, ”co_2”), но не могли просматривать справочники (”co_9”). Однако, после авторизации как пользователи произошли следующие изменения.
2 (r+co_1,w+co_1,r+co_2,w+co_2) + 3(r+co_9) + 4(r+co_1,r–co_2,r–co3) = = (r+co_1,w+co_1,w+co_2,r+co_9)
Мы лишились права просматривать товары 2й категории, т.к., как было сказано ранее, права запрещения имеют больший приоритет, т.е. когда вы состоите в нескольких группах доступа, в одной из которых ”read + co_1”, а во второй ”read – co_1”, в итоге вы лишаетесь права чтения ”co_1”. Права записи без прав чтения не позволяют производить никаких действий. Для записи должны быть доступны права чтения/записи. Таким образом, у нас остались права редактирования ”co_1”, права редактирования и просмотра ”co_2” были утрачены, были получены права чтения ”co_9”.

