ASISG
Gy - php framework/CMS | Документацыя | Пользовательские группы доступа
Группы пользователей
Каждый пользователей может относиться к нескольким группам пользователей. Каждая группа даёт разрешения на определённые действия в системе (пользовательские действия).
В админке можно зайти в -> "Пользователи" затем нажать "изменить" напротив необходимого пользователя и там будет настройка "Группа прав:", где можно выбрать к каким группам пользователей относится изменяемый пользователь.
Также можно настраивать или создавать новые группы пользователей. Это можно сделать в админ панели -> "Пользователи" далее кнопка "настройка групп прав доступа". На открывшейся странице можно изменить имеющиеся группы и создать новые при этом для групп задаются пользовательские действия. Эти действия задаются при установке модулей (когда это будет реализовано) и их в системе всегда определённое количество (пользователь не может задавать новые или удалять).
На данный момент имеются действия:
- "Просматривать админку" (show_admin_panel) - это действие позволяет, позволяющее авторизованному пользователю просматривать страницы админки;
- "Редактировать всё (Админ)" (action_all) - это действие для админов которым разрешено всё;
- "Изменение всех container-data" (edit_container_data) - изменение всех контейнеров данных (можно задавать для пользователей - контенщиков);
- "Изменение пользователей (кроме админов)" (edit_users) - такое действие разрешает изменять пользователей, кроме админов.
Нюансы:
- нельзя изменять или удалять группы данные по умолчанию после установки это - "Админы(admins)", "Контент(content)", "Админи по пользователям(user_admin)";
- работать (изменять, создавать, удалять) с группами могут только админы;
- изменять группу "Админы(admins)" нельзя никому (даже админу, что бы не было варианта исчезновения всех админов, случайно);
- если пользователь относится к нескольким группам то права заданные для этих групп суммируются, т.е. пользователю будут доступны все пользовательские действия заданные для всех его групп.
Пример работы с группами в коде
Для работы с группами сделан класс accessUserGroup (gy/classes/accessUserGroup.php) в котором имеются все необходимые методы.
Например на страницах админки, что бы проверить разрешено ли текущему пользователю просматривать админку
accessUserGroup::accessThisUserByAction( 'show_admin_panel')
т.е. show_admin_panel - это действие пользователя, разрешающее просматривать админку.
Далее если на странице админке идёт речь о изменение пользователей то нужно проверить, доступно ли данное действие текущему пользователю:
accessUserGroup::accessThisUserByAction( 'edit_users')