Покрытие кода docstrings
This commit is contained in:
parent
4e92aba2a2
commit
8f48df2cf5
19 changed files with 2324 additions and 1839 deletions
|
|
@ -11,8 +11,31 @@ logger = logging.getLogger(__name__)
|
|||
class JsonStorage:
|
||||
"""Хранилище пользователей в JSON-файле.
|
||||
|
||||
Предоставляет методы для создания, чтения и проверки данных пользователей,
|
||||
используя шифрование паролей с помощью bcrypt.
|
||||
Назначение:
|
||||
Обеспечивает простое файловое хранилище для учетных записей пользователей
|
||||
без полноценной СУБД. Подходит для встраиваемых окружений и сценариев,
|
||||
где важна минимальная зависимость от внешних сервисов.
|
||||
|
||||
Формат данных:
|
||||
JSON‑структура вида:
|
||||
{
|
||||
"users": [
|
||||
{"id": int, "username": str, "password_hash": str, "is_admin": bool},
|
||||
...
|
||||
],
|
||||
"next_id": int
|
||||
}
|
||||
|
||||
Безопасность:
|
||||
Пароли никогда не сохраняются в открытом виде. Для хеширования используется
|
||||
`passlib.context.CryptContext` со схемой `bcrypt`. Файл создаётся с правами
|
||||
доступа `0o600` (только владелец).
|
||||
|
||||
Ограничения и замечания:
|
||||
- Отсутствует конкурентный доступ/блокировки файла — при использовании в
|
||||
многопроцессной среде может потребоваться внешняя синхронизация.
|
||||
- Имя файла и каталог по умолчанию `/etc/gonets/users.json` предполагают
|
||||
наличие прав на запись и предварительную подготовку окружения.
|
||||
"""
|
||||
|
||||
def __init__(self, file_path: str = "/etc/gonets/users.json"):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue