py.lib.aw_web_tools
2025-03-02
Parent:9c734271dcf2
py.lib.aw_web_tools/src/aw_web_tools/id_helper.py
.. 1.202503.3 + Модуль-обёртка над `SimpleTemplate`
1 # coding: utf-8
2 """\
3 Модуль вспомогательных средств обеспечения идентификации пользователей
4 """
21 Общий класс ошибок идентификации
22 """
27 Ошибка проверки ID
28 """
33 Запрос не идентифицирован
34 """
41 Ошибки при работе с классом пользовательского идентификатора
42 """
47 Класс пользовательского идентификатора.
49 Обеспечивает хранение идентификационной информации о пользователе.
50 """
57 ):
59 :param uname: Имя пользователя внутри системы
60 :param acc_level: Уровень допуска пользователя. Интерпретация целиком на стороне приложения.
61 :param sess_id: Идентификатор сессии пользователя
62 :param acc_tags: Строковые константы, определяющие конкретное множество доступных пользователю ресурсов.
63 Интерпретация целиком на стороне приложения
64 :param user_meta: Иная полезная приложению информация, сохранённая в виде тег-значение
65 """
74 Преобразует объект в форму, пригодную для получения подписи сессии
75 """
87 Получить теги доступа пользователя, если они имелись
88 """
97 Получить метаданные пользователя, если они имелись.
98 """
107 Преобразование текущего состояния объекта в массив
108 """
112 )
127 Сохранение своего экземпляра в контекст запроса
128 """
131 @classmethod
134 Разбор словаря, созданного методом ``to_dict`` и восстановление из него экземпляра объекта,
135 подобного сохранённому
136 """
139 # User name
152 # Session Identity
165 # Access Level
176 )
180 # Access Tags
194 # User Metadata
211 @classmethod
214 Извлечение экземпляра объекта из контекста запроса, если он там сохранён.
215 """
229 Класс поддержки идентификации
230 """
236 ):
238 :param app_name: Имя приложения. Допускаются цифры символы латиницы и знак ``-``
239 :param authelia_helper: Объект AutheliaHelper с описанием системы аутентификации, если используем Authelia
240 :param sign_secret: Секрет, которым будет подписываться JWT.
241 :param sess_timeout: Время жизни сессии пользователя.
242 """
253 # Свойства необходимые для работы в качестве плагина Bottle
263 Формируем ``Cookie`` для идентификации сессии пользователя.
265 :param uid: Экземпляр ``UID``, идентифицирующий сессию. Если нет получаем из контекста запроса
266 :param request: Экземпляр запроса, на основании которого формируется ответ.
267 :param is_secure: Установить признак ``secure`` на cookie
268 :param is_httponly: Установить признак ``httponly`` на cookie
269 """
282 )
288 ):
290 Установка cookie на ответ пользователю
292 :param uid: Объект ``UID``, которым идентифицируется сессия. По умолчанию берётся из контекста запроса.
293 :param response: Объект ответа, на который устанавливаем cookie. По умолчанию ``bottle.response``
294 :param request: Экземпляр запроса, на основании которого формируется ответ. По умолчанию ``bottle.request``
295 :param is_secure: Установить признак ``secure`` на cookie
296 :param is_httponly: Установить признак ``httponly`` на cookie
297 """
298 cookie = self.make_cookie(uid=uid, request=request, is_secure=is_secure, is_httponly=is_httponly)
303 Реализация получения ID и сохранения его в контекст запроса для последующего применения
304 в других методах класса.
305 """
317 })
344 Декоратор для конкретных точек входа приложения
345 """
355 @staticmethod
358 Получаем ID из контекста запроса (для случая, когда проверка и валидация ID проведена на уровне
359 плагина или декоратора
360 """
363 # Реализация методов для работы в качестве Bottle плагина
365 pass