Backend / Admin Only

API: Администрирование

Панель управления пользователями и системными рассылками. Префикс: /admin. Файл: srv/app/api/endpoints/admin.py

Обзор эндпоинтов

Все запросы к панели администратора требуют валидацию токена супер-администратора (user_id = 1). Другие пользователи получают ошибку 403 Forbidden.

МетодПутьОписание
GET/admin/usersПолучить список всех пользователей системы
POST/admin/usersПринудительно создать нового пользователя
POST/admin/users/{user_id}/blockЗаблокировать аккаунт пользователя
POST/admin/users/{user_id}/unblockРазблокировать аккаунт пользователя
PUT/admin/users/{user_id}/profileИзменить личные данные любого пользователя
PUT/admin/users/{user_id}/avatarПринудительно изменить аватарку пользователя
POST/admin/broadcastОтправить системное сообщение всем (рассылка)

Авторизационный декоратор require_admin

Проверка прав осуществляется функцией зависимости FastAPI:

pythonrequire_admin
def require_admin(current_user: models.User = Depends(get_current_user)):
    if current_user.id != 1:
        raise HTTPException(
            status_code=403, 
            detail="Доступ запрещен. Требуются права супер-администратора."
        )
    return current_user

Системная рассылка (POST /admin/broadcast)

Позволяет администратору отправить текстовое сообщение от имени системного пользователя chepuhagram (ID: 0) выбранным пользователям или вообще всем зарегистрированным аккаунтам.

Каждое сообщение сохраняется в БД как обычное сообщение от отправителя с sender_id = 0 и отправляется получателю через системный сервис push-уведомлений send_system_notification().