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().