EJIO.user package¶

Subpackages¶
Submodules¶
EJIO.user.base_error module¶
- exception EJIO.user.base_error.UserBaseError(message: str)[исходный код]¶
Базовые классы:
EJIOBaseErrorБазовое исключение пакета user.
EJIO.user.err module¶
- exception EJIO.user.err.FacadeNotInitializedError(message: str)[исходный код]¶
Базовые классы:
UserBaseErrorИсключение связанное с попыткой взаимодействия с неинициализированным фасадом пользователя.
- exception EJIO.user.err.IncorrectLoginError(message: str)[исходный код]¶
Базовые классы:
UserBaseErrorИсключение связанное с некорректным переданным в конструктор логином.
- exception EJIO.user.err.IncorrectPasswordError(message: str)[исходный код]¶
Базовые классы:
UserBaseErrorИсключение связанное с попыткой входа при некорректных данных.
- exception EJIO.user.err.InvalidCredentialsError(message: str)[исходный код]¶
Базовые классы:
UserBaseErrorИсключение связанное с попыткой входа при некорректных данных.
- exception EJIO.user.err.ManagerNotInitializedError(message: str)[исходный код]¶
Базовые классы:
UserBaseErrorИсключение связанное с попыткой взаимодействия с неинициализированным менеджером.
- exception EJIO.user.err.SaltNotFoundError(message: str)[исходный код]¶
Базовые классы:
UserBaseErrorИсключение связанное с попыткой вызвать конструктор до генерации соли.
- exception EJIO.user.err.ServiceNotInitializedError(message: str)[исходный код]¶
Базовые классы:
UserBaseErrorИсключение связанное с попыткой вызова неинициализированного сервиса.
- exception EJIO.user.err.UserAlreadyAuthenticatedError(message: str)[исходный код]¶
Базовые классы:
UserBaseErrorИсключение связанное с попыткой входа при активной сессии.
- exception EJIO.user.err.UserAlreadyExistsError(message: str)[исходный код]¶
Базовые классы:
UserBaseErrorИсключение связанное с попыткой регистрации уже зарегестрированного пользователя.
- exception EJIO.user.err.UserBaseError(message: str)[исходный код]¶
Базовые классы:
EJIOBaseErrorБазовое исключение пакета user.
- exception EJIO.user.err.UserNotAuthenticatedError(message: str)[исходный код]¶
Базовые классы:
UserBaseErrorИсключение связанное с попыткой выхода при неактивной сессии.
- exception EJIO.user.err.UserNotFoundError(message: str)[исходный код]¶
Базовые классы:
UserBaseErrorИсключение связанное с попыткой входа при отсутствии запрашеваемого пользователя в базе данных.
- exception EJIO.user.err.UserSessionNotFoundError(message: str)[исходный код]¶
Базовые классы:
UserBaseErrorИсключение связанное с попыткой автоматического входа при отсутствии активной сессии.
EJIO.user.facade module¶
- class EJIO.user.facade.UserFacade(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
StaticClass,DisposableЦентральный фасад управления пользователями. Отвечает за генерацию ID, соли, авторизацию и атомарное сохранение базы.
- classmethod authenticate(login: str | None = None, password: str | None = None, remember_me: bool = False) User[исходный код]¶
Синхронный метод авторизации. Проверяет логин, берет соль из БД, солит введенный пароль и сверяет хэши. В случае успеха возвращает готовый заполненный класс User.
- avatar_service: FileFacade | None = None¶
- classmethod clear() None[исходный код]¶
Метод полной очистки внутреннего хранилища/состояния.
- Исключение:
NotImplementedError – должен быть реализован в подклассах.
- classmethod commit() None[исходный код]¶
- classmethod create_user(login: str, password: str, fill_gaps: bool = False) User[исходный код]¶
Фабрика: принимает строго список из логина и пароля. Просит базу выдать уникальный ID, генерирует соль и ключ ровно ОДИН раз.
- classmethod emit(user: User) None[исходный код]¶
Фиксирует пользователя в репозитории и сохраняет зашифрованную базу на диск.
- classmethod filter_users(predicate: Callable[[User], bool]) list[User][исходный код]¶
- classmethod get_all_users() list[User][исходный код]¶
- classmethod get_by_id(user_id: str) User | None[исходный код]¶
- classmethod initialize() None[исходный код]¶
- classmethod logout() None[исходный код]¶
Принудительно разлогинивает пользователя и стирает файлы сессий.
EJIO.user.flags module¶
- class EJIO.user.flags.UserPermissions(*values)[исходный код]¶
Базовые классы:
IntFlagПобитовые флаги разрешений системы.
- ALL = 15¶
- DELETE = 4¶
- MANAGE_USERS = 8¶
- NONE = 0¶
- READ = 1¶
- WRITE = 2¶
- class EJIO.user.flags.UserRole(*values)[исходный код]¶
Базовые классы:
IntEnumИерархический реестр ролей пользователей.
- ADMIN = 4¶
- GUEST = 1¶
- MODERATOR = 3¶
- ROOT = 5¶
- USER = 2¶
- property permissions: UserPermissions¶
Возвращает жестко закрепленный набор разрешений для текущей роли.
- Результат:
Набор разрешений для роли.
EJIO.user.model module¶
- class EJIO.user.model.User(id: str = '', login: str = '', name: str = '', role: UserRole = UserRole.USER, crypto_key: str = '', avatar_id: str | None = None, password_hash: str = '', salt: str = '')[исходный код]¶
Базовые классы:
objectМодель пользователя. Сравнивается по регистронезависимому логину.
- property avatar: str | None¶
Возвращает абсолютный путь к физическому файлу изображения в ОС.
- avatar_id: str | None¶
- classmethod create_bare(login: str) Self[исходный код]¶
Внутренний фабричный метод создания «голой» заготовки пользователя. Имя по умолчанию выставляется равным логину.
- crypto_key: str¶
- classmethod from_dict(data: dict[str, Any]) User[исходный код]¶
Восстанавливает объект из словаря, сохраняя все оригинальные ID с диска.
- id: str¶
- login: str¶
- name: str¶
- property password: str¶
Возвращает текущий сохраненный хэш пароля.
- password_hash: str¶
- salt: str¶
- to_dict() dict[str, Any][исходный код]¶
Автоматическая сериализация свойств на базе dataclasses.asdict.
EJIO.user.repository module¶
- class EJIO.user.repository.UserRepository[исходный код]¶
Базовые классы:
objectВнутренний репозиторий управления коллекцией пользователей в ОЗУ. Обеспечивает потокобезопасные CRUD и SQL-подобные операции выборки.
- add(user: User) None[исходный код]¶
- clear() None[исходный код]¶
- filter(predicate: Callable[[User], bool]) list[User][исходный код]¶
Выполняет продвинутую фильтрацию пользователей на основе лямбда-предиката. Аналог SQL WHERE.
- get_all() list[User][исходный код]¶
- get_all_raw() list[dict[str, Any]][исходный код]¶
- get_by_id(user_id: str) User | None[исходный код]¶
- get_by_login(login: str) User | None[исходный код]¶
Ищет пользователя по уникальному логину (регистронезависимо).
- load_raw_list(raw_list: list[dict[str, Any]]) None[исходный код]¶
Быстрая атомарная заливка сырых словарей из файла конфигурации.
- remove(user_id: str) None[исходный код]¶
EJIO.user.session module¶
- class EJIO.user.session.UserSessionManager(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
StaticClass,DisposableСтатический менеджер пользовательских сессий («Запомнить меня»). Записывает зашифрованный токен авторизации на жесткий диск.
- classmethod active_user() User | None[исходный код]¶
- classmethod clear() None[исходный код]¶
Метод полной очистки внутреннего хранилища/состояния.
- Исключение:
NotImplementedError – должен быть реализован в подклассах.
- classmethod get_stored_user_id() str | None[исходный код]¶
Считывает зашифрованный файл сессии и возвращает ID пользователя, если сессия валидна.
- classmethod initialize(app_path: Path) None[исходный код]¶
- classmethod logout() None[исходный код]¶
Разлогинивает пользователя и стирает сессию с диска.
- classmethod save_session(user_id: str, remember_me: bool) None[исходный код]¶
Сохраняет токен сессии на диск, если пользователь поставил галочку.
Module contents¶
- class EJIO.user.User(id: str = '', login: str = '', name: str = '', role: UserRole = UserRole.USER, crypto_key: str = '', avatar_id: str | None = None, password_hash: str = '', salt: str = '')[исходный код]¶
Базовые классы:
objectМодель пользователя. Сравнивается по регистронезависимому логину.
- property avatar: str | None¶
Возвращает абсолютный путь к физическому файлу изображения в ОС.
- avatar_id: str | None¶
- classmethod create_bare(login: str) Self[исходный код]¶
Внутренний фабричный метод создания «голой» заготовки пользователя. Имя по умолчанию выставляется равным логину.
- crypto_key: str¶
- classmethod from_dict(data: dict[str, Any]) User[исходный код]¶
Восстанавливает объект из словаря, сохраняя все оригинальные ID с диска.
- id: str¶
- login: str¶
- name: str¶
- property password: str¶
Возвращает текущий сохраненный хэш пароля.
- password_hash: str¶
- salt: str¶
- to_dict() dict[str, Any][исходный код]¶
Автоматическая сериализация свойств на базе dataclasses.asdict.
- class EJIO.user.UserFacade(*args: tuple[object, ...], **kwargs: dict[str, object])[исходный код]¶
Базовые классы:
StaticClass,DisposableЦентральный фасад управления пользователями. Отвечает за генерацию ID, соли, авторизацию и атомарное сохранение базы.
- classmethod authenticate(login: str | None = None, password: str | None = None, remember_me: bool = False) User[исходный код]¶
Синхронный метод авторизации. Проверяет логин, берет соль из БД, солит введенный пароль и сверяет хэши. В случае успеха возвращает готовый заполненный класс User.
- avatar_service: FileFacade | None = None¶
- classmethod clear() None[исходный код]¶
Метод полной очистки внутреннего хранилища/состояния.
- Исключение:
NotImplementedError – должен быть реализован в подклассах.
- classmethod commit() None[исходный код]¶
- classmethod create_user(login: str, password: str, fill_gaps: bool = False) User[исходный код]¶
Фабрика: принимает строго список из логина и пароля. Просит базу выдать уникальный ID, генерирует соль и ключ ровно ОДИН раз.
- classmethod emit(user: User) None[исходный код]¶
Фиксирует пользователя в репозитории и сохраняет зашифрованную базу на диск.
- classmethod filter_users(predicate: Callable[[User], bool]) list[User][исходный код]¶
- classmethod get_all_users() list[User][исходный код]¶
- classmethod get_by_id(user_id: str) User | None[исходный код]¶
- classmethod initialize() None[исходный код]¶
- classmethod logout() None[исходный код]¶
Принудительно разлогинивает пользователя и стирает файлы сессий.
- class EJIO.user.UserPermissions(*values)[исходный код]¶
Базовые классы:
IntFlagПобитовые флаги разрешений системы.
- ALL = 15¶
- DELETE = 4¶
- MANAGE_USERS = 8¶
- NONE = 0¶
- READ = 1¶
- WRITE = 2¶
- class EJIO.user.UserRole(*values)[исходный код]¶
Базовые классы:
IntEnumИерархический реестр ролей пользователей.
- ADMIN = 4¶
- GUEST = 1¶
- MODERATOR = 3¶
- ROOT = 5¶
- USER = 2¶
- property permissions: UserPermissions¶
Возвращает жестко закрепленный набор разрешений для текущей роли.
- Результат:
Набор разрешений для роли.