py.lib.aw_web_tools
py.lib.aw_web_tools/src/aw_web_tools/authelia_helper.py
.. 1.202510.1 + Режим фековой авторизации для адаптера authelia. Режим требуется для отладки, поскольку вряд ли на машине разработчика будет развёрнуто это ПО на ранних стадиях разработки (преальфа). Возможно режим будет полезен при поиска проблем в приложении при авторизации.
1 # coding: utf-8
2 """\
3 Поддержка работы с системой авторизации [authelia](https://www.authelia.com/)
4 """
12 # Константы
13 HEADER_USER = 'Remote-User' # Заголовок по умолчанию, в котором система аутентификации передаёт имя УЗ пользователя
14 HEADER_GROUPS = 'Remote-Groups' # Заголовок по умолчанию, в котором система аутентификации передаёт группы пользовтеля
15 HEADER_EMAIL = 'Remote-Email' # Заголовок по умолчанию, в котором система аутентификации передаёт e-mail пользователя
16 HEADER_NAME = 'Remote-Name' # Заголовок по умолчанию, в котором система аутентификации передаёт имя пользователя
21 Базовый класс исключений модуля адаптера Authelia
22 """
27 Проблемы с авторизацией пользователя
28 """
44 ):
46 :param group_filter: Фильтр передаваемый системой аутентификации групп, которые интересны нам. Если ``None``
47 группы, передаваемые в заголовке не фильтруются
48 :param header_user: Имя заголовка с именем УЗ пользователя.
49 :param header_groups: Имя заголовка с группами пользователя
50 :param header_email: Имя заголовка c e-mail пользователя
51 :param header_name: Имя заголовка с именем пользователя
52 :param fake_auth: Режим без авторизации. Создаётся для отладки или решения проблем с авторизацией.
53 Не проводит авторизацию по заголовкам, а вместо этого подставляет заранее заданные значения.
54 """
72 Обработка запроса. Если заголовки системы авторизации присутствуют, информацией из них заполняется
73 объект ``AHUser``. Если данные не найдены, то будет возбуждено исключение.
75 :param request: Обрабатываемый запрос
76 :returns: Объект ``AHUser`` с данным авторизации.
77 """
80 return AHUser(uname='__UNK__', groups=[], name='John Doe', email='devnull@localhost.localdomain')
101 AHError(f'Ошибка в фильтре групп. Для ключа "{grp}" не нашлось значения, хотя оно присутствует '