Состав модуля¶
Внешнее API для подсистемы m3_users¶
- m3_users.api.clear_user_roles(*args, **kwargs)¶
Убирает все роли у пользователя
Параметры: user (django.contrib.auth.models.User) – пользователь у которого снимается роль Примечание
если пользователь суперпользователь, то снимается флаг суперпользователя
- m3_users.api.get_user_by_id(user_id)¶
Возвращает экземпляр пользователя django.contrib.auth.models.User по указанному идентификатору.
Параметры: user_id (int) – искомый пользователь Примечание
если вдруг в user_id передан реальный пользователь, то он и возвращается.
- m3_users.api.get_user_metaroles(user)¶
Возвращает список объектов метаролей, которые есть у пользователя.
Параметры: user (django.contrib.auth.models.User) – пользователь системы
- m3_users.api.get_user_roles(user)¶
Возвращает список ролей пользователя
Параметры: user (django.contrib.auth.models.User) – пользователь системы
- m3_users.api.remove_user_role(*args, **kwargs)¶
Снимает роль у пользователя.
Параметры: - user (django.contrib.auth.models.User) – пользователь у которого снимается роль
- role (m3_users.models.UserRole) – роль
Примечание
если снимаем роль у суперпользователя, и него не осталось ролей, наследовынных от метароли Супер-Администратора, то сниматся с него флаг суперпользователя
- m3_users.api.set_user_role(*args, **kwargs)¶
Устанавливает роль для пользователя
Параметры: - user (django.contrib.auth.models.User) – пользователь у которого снимается роль
- role (m3_users.models.UserRole) – роль
Примечание
если роль суперпользователя, то пользователю ставится флаг суперпользователя
- m3_users.api.user_has_metarole(user, metarole)¶
Возвращает True в случае, если пользователю назначена метароль, иначе False.
Параметры: - user (django.contrib.auth.models.User) – пользователь, для которого проверяется наличие метароли
- metarole (str) – метароль
Вспомогательне методы модуля¶
- m3_users.helpers.get_assigned_metaroles_query(user)¶
Возвращает список метаролей у пользователя
Параметры: user (django.contrib.auth.models.User) – пользователь системы
- m3_users.helpers.get_assigned_users_query(role, filter=None)¶
Возвращает запрос, пользователи имеющие указанную роль
Параметры: - role (m3_users.models.UserRole) – роль системы
- filter (str) – необязательный параметр, строка по которому будет произведена фильтрация пользователей
- m3_users.helpers.get_roles_query(filter='')¶
Возвращает запрос на получение списка ролей
Параметры: filter (str) – необязательный параметр, название конкретной роли
- m3_users.helpers.get_unassigned_users(role, filter)¶
Хелпер возвращает список пользователей (возможно, отфильтрованных по наименованию), которые еще не включены в роль
- m3_users.helpers.get_users_query(filter='')¶
Возвращает запрос на получение списка пользователей
Параметры: filter (str) – необязательный параметр, строка по которому будет произведена фильтрация пользователей
Метароли пользователей¶
На уровне Платформы объявлены следующие метароли:
- Супер-администратор – может создавать других администраторов и назначать им права доступа
- Администратор – выполняет административные функции
- Обобщенный пользователь – любой пользователь системы
- class m3_users.metaroles.MetaroleManager¶
Менеджер метаролей пользователя
- get_metarole(code)¶
Возвращает экземпляр метароли по коду
- get_registered_metaroles()¶
Возвращает экземпляры всех зарегистроированных в системе метаролей
- register_metarole(metarole)¶
Регистрирует метароль в менеджере ролей
- class m3_users.metaroles.Metaroles_DictPack¶
Пакет действий с метаролями
- get_row(id)¶
возвращает метароль по id
- get_select_window(win)¶
возвращает окно выбора метароли
Примечание
Доступно 1 событие: выбор с присвоением значения вызвавшему контролу
- class m3_users.metaroles.UserMetarole(metarole_code, metarole_name)¶
Класс, описывающий метароль пользователя
- code = None¶
кодовое обозначение метароли пользователя
- get_owner_metaroles()¶
Возвращает список метаролей в которые входит наша метароль. Проще говоря список родителей, ребенком которых является наша метароль.
- id¶
геттер необходим для лучшей маскировки объекта Метароли под объект обычной модели (критично для некоторых операций Dict_Pack’ов)
- included_metaroles = None¶
список метаролей, дети данной метароли
- name = None¶
название метароли пользователя
- class m3_users.models.AssignedRole(*args, **kwargs)¶
Роль, назначенная на пользователя
- role¶
роль, ссылка m3_users.models.UserRole
- user¶
пользователь, ссылка django.contrib.auth.models.User
- class m3_users.models.RolePermission(*args, **kwargs)¶
Разрешение, сопоставленное пользовательской роли.
- disabled = None¶
булево, активность роли
- permission_code = None¶
строка, код права доступа
- role¶
роль, связь с m3_users.models.UserRole
- verbose_permission_name = None¶
- текстовое поле, человеческое наименование разрешения с наименованиями модулей,
- разделенных через запятые.
- class m3_users.models.UserRole(*args, **kwargs)¶
Модель хранения роли пользователя в прикладной подсистеме
- metarole = None¶
строка, ассоциированная с ролью метароль (определяет интерфейс пользователя).
- metarole_name()¶
возвращает название метароли
- name = None¶
строка, наименование роли пользователя
Права ролей¶
- class m3_users.permissions.ActionsBackend¶
Бэкенд для работы с пользователями
- authenticate(username=None, password=None)¶
Авторизация, возвращает всегда None Мы не будем проверять пользователя - на это есть другие бэкенды
- get_all_permissions(user_obj)¶
Возвращается набор строк с правами по всем группам, в которые входит пользователь и права непосредственно пользователя В нашем случае это все роли, т.к. у пользователя нет прав :)
Параметры: user_obj (django.contrib.auth.models.User) – пользователь
- get_group_permissions(user_obj)¶
Возвращается набор строк с правами по всем группам, в которые входит пользователь В нашем случае это роли и права в ролях
Параметры: user_obj (django.contrib.auth.models.User) – пользователь
- get_perm_details(user_obj, perm)¶
Возвращает детали прав доступа по коду, возвращает всегда None
- get_user(user_id)¶
Возвращает пользователя системы по id
Параметры: user_id (int) – идентификатор пользователя
- has_module_perms(user_obj, app_label)¶
Проверка наличия каких-либо права в указанном приложении/модуле
Параметры: - user_obj (django.contrib.auth.models.User) – пользователь
- app_label (str) – название приложения
- has_perm(user_obj, perm, obj=None)¶
Проверка наличия права у пользователя
Параметры: - user_obj (django.contrib.auth.models.User) – пользователь
- perm (m3_users.models.RolePermission) – право
- m3_users.permissions.get_permission_details(user_obj, perm)¶
Возвращает параметры права
Параметры: - user_obj (django.contrib.auth.models.User) – пользователь
- perm (m3_users.models.RolePermission) – право
Created on 11.06.2010
@author: akvarats
- class m3_users.roles.AddRolePermission¶
Выбор прав доступа для добавления в роль
- class m3_users.roles.AssignUsers¶
Сопоставление пользователей роли
- class m3_users.roles.AssignedUsersWindow(*args, **kwargs)¶
Окно просмотра пользователей, которые включены в данную роль
- class m3_users.roles.DeleteAssignedUser¶
Удаление связанного с ролью пользователя
- class m3_users.roles.EditRoleWindowAction¶
Получение окна редактирования роли пользователя
- class m3_users.roles.GetRolePermissionAction¶
Получение списка прав доступа для указанной роли
- class m3_users.roles.RoleAssignedUsersDataAction¶
Получение данных (списка) пользователей, которые прикреплены к указанной роли
- class m3_users.roles.RolesActions¶
Пакет действий для подсистемы прав пользователей
- edit_win¶
псевдоним класса RolesEditWindow
- select_win¶
псевдоним класса SelectUsersListWindow
- class m3_users.roles.RolesWindowAction¶
Действие на получение окна показа списка пользовательских ролей
- class m3_users.roles.Roles_DictPack¶
Справочник “Роли пользователей”.
Используется для выбора значений.
- edit_window¶
псевдоним класса RolesEditWindow
- model¶
псевдоним класса UserRole
- class m3_users.roles.SaveRoleAction¶
Сохранение роли пользователя
- class m3_users.roles.SelectPermissionWindow(*args, **kwargs)¶
Окно выбора прав доступа для добавления в роль
- class m3_users.roles.SelectUsersToAssignWindowAction¶
Показ окна с выбором сотрудников, которые не были выбраны ранее для указанной роли
- class m3_users.roles.ShowAssignedUsersAction¶
Получение окна со списком связанных пользователей
- class m3_users.roles.UsersForRoleAssignmentData¶
Получение списка пользователей, которые могут быть назначены на роль
- m3_users.roles.get_all_permission_tree()¶
Общий подход к формированию дерева прав доступа (алгоритм): собирается список прав доступа исходя из наборов действий, действий, субправ наборов действий, субправ действий у каждого элемента списка прав должен быть путь в дереве (пока строкой), наименование права доступа, полное наименование права (для грида прав) путь в дереве строится из значения path элемента, а если он отсутствует, то по иерархии этого элемента в фактической структуре действий и набора действий