Метод POST /api/v1/user
Краткое описание
Создаёт нового пользователя или обновляет существующего.
Требуется авторизация и роль администратора (Depends check_is_admin).
Алгоритм работы метода
Если пользователя с переданным
loginнет — создаётся новая запись. Для создания пароль обязателен.Если пользователь уже существует — выполняется обновление полей; если password не передан, сохраняется прежний пароль.
Пароль сохраняется в базе в зашифрованном виде (фернет).
Для пользователя с
login == "admin"действуют дополнительные ограничения:только текущий администратор с
login "admin"может изменять этого пользователя;нельзя снять у него роль администратора (нельзя установить
is_admin = false).
Перед сохранением устанавливается поле
ecc_dt =текущее локальное время.
Входные параметры (тело запроса, JSON)
Объект модели User. Основные поля:
login(string) — уникальный логин пользователя (обязателен)password(string) — пароль (обязателен при создании, необязателен при обновлении)name(string) — имя (опционально)lastname(string) — фамилия (опционально)is_admin(boolean) — флаг администратора (опционально)(возможны другие поля модели User)
Ответ (успех)
Возвращает объект UserCRUD (JSON) — сохранённую запись пользователя.
Поле password в ответе заменено на '***' (маскировка)
Пример запроса (создание)
{ "login":"jdoe", "password":"secret", "name":"John", "lastname":"Doe", "is_admin":false }
Пример ответа
{ "password": "***", "is_deleted": false, "name": "John", "ecc_dt": "2025-11-13T14:02:54.870183+03:00", "login": "jdoe", "lastname": "Doe", "is_admin": false }
При обновлении не передавайте password, если хотите сохранить старый пароль.
Не пытайтесь изменять запись admin без соответствующих прав.
Убедитесь, что запрос выполняется от имени пользователя с ролью администратора.