Документация админки
This commit is contained in:
@@ -4,11 +4,18 @@
|
|||||||
|
|
||||||
## Обзор архитектуры
|
## Обзор архитектуры
|
||||||
|
|
||||||
Модуль построен на принципах чистой архитектуры и использует паттерн CQRS (через MediatR). Он взаимодействует с другими модулями системы для реализации сквозной функциональности, такой как полное удаление данных пользователя.
|
Модуль построен на принципах чистой архитектуры и использует паттерн CQRS (через MediatR).
|
||||||
|
|
||||||
|
### Связь с модулем Settings
|
||||||
|
**Важное изменение:** Модуль Admin больше не является владельцем (Owner) системных настроек. Все настройки вынесены в отдельный инфраструктурный модуль **Settings**.
|
||||||
|
* **Чтение настроек:** Модуль Admin использует интерфейс `ISystemSettings` для получения актуальной конфигурации.
|
||||||
|
* **Изменение настроек:** Команды обновления настроек в Admin-панели делегируют выполнение соответствующим сервисам модуля Settings. Это позволяет другим модулям (Auth, Stories, Profiles) зависеть только от модуля Settings, не создавая циклической зависимости от Admin-модуля.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Глобальные настройки системы
|
## Глобальные настройки системы
|
||||||
|
|
||||||
Настройки разделены на логические блоки для упрощения управления и соблюдения принципа разделения ответственности (ISP).
|
Настройки управляются централизованно через модуль Settings и разделены на логические блоки:
|
||||||
|
|
||||||
### 1. Системные настройки (System)
|
### 1. Системные настройки (System)
|
||||||
* **DomainUrl**: Базовый URL домена сервера.
|
* **DomainUrl**: Базовый URL домена сервера.
|
||||||
@@ -28,50 +35,43 @@
|
|||||||
* **EnableFolders**: Включить функционал папок для группировки чатов.
|
* **EnableFolders**: Включить функционал папок для группировки чатов.
|
||||||
|
|
||||||
### 4. Настройки сообщений (Messages)
|
### 4. Настройки сообщений (Messages)
|
||||||
Администратор может гибко управлять правами пользователей на работу с контентом:
|
|
||||||
* **AllowPolls**: Разрешить создание опросов (аналог Telegram).
|
* **AllowPolls**: Разрешить создание опросов (аналог Telegram).
|
||||||
* **AllowMedia**: Разрешить отправку файлов/фото/видео.
|
* **AllowMedia**: Разрешить отправку файлов/фото/видео.
|
||||||
* **AllowVoiceMessages**: Разрешить отправку голосовых сообщений.
|
* **AllowVoiceMessages**: Разрешить отправку голосовых сообщений.
|
||||||
* **AllowForwarding**: Разрешить пересылку сообщений в другие чаты.
|
* **AllowForwarding**: Разрешить пересылку сообщений в другие чаты.
|
||||||
* **AllowReplies**: Разрешить ответы на сообщения.
|
* **ForbidCopying**: Запрет копирования текста и сохранения медиафайлов.
|
||||||
* **AllowQuoting**: Разрешить цитирование текста.
|
|
||||||
* **AllowPinning**: Разрешить закрепление сообщений в чатах.
|
|
||||||
* **AllowMessageDeletion**: Разрешить удаление сообщений.
|
|
||||||
* **ForbidCopying**: При включении запрещает копирование текста и сохранение медиафайлов из чатов.
|
|
||||||
* **AllowLinks**: Разрешить вставку активных гиперссылок.
|
|
||||||
* **MaxMediaSizeBytes**: Глобальный лимит на размер вложения.
|
* **MaxMediaSizeBytes**: Глобальный лимит на размер вложения.
|
||||||
|
|
||||||
### 5. Настройки WebRTC (Голос/Видео)
|
### 5. Настройки WebRTC (Голос/Видео)
|
||||||
* **Enabled**: Общий переключатель звонков.
|
* **Enabled**: Общий переключатель звонков.
|
||||||
* **Voice/Video Calls**: Разрешить аудио и видео звонки отдельно.
|
* **Voice/Video Calls**: Разрешить аудио и видео звонки отдельно.
|
||||||
* **ScreenSharing**: Разрешить демонстрацию экрана.
|
* **ScreenSharing**: Разрешить демонстрацию экрана.
|
||||||
* **TURN Configuration**: IP, логин и пароль для TURN-сервера (необходим для обхода NAT).
|
* **TURN Configuration**: Данные для TURN-сервера (IP, логин, пароль).
|
||||||
|
|
||||||
### 6. Интеграция Klipy
|
### 6. Интеграция Klipy
|
||||||
* **Enabled**: Включить сервис GIF и стикеров Klipy.
|
* **Enabled**: Включить сервис GIF и стикеров Klipy.
|
||||||
* **AppName / Token**: Параметры аутентификации в API Klipy.
|
* **AppName / Token**: Параметры аутентификации в API Klipy.
|
||||||
|
|
||||||
### 7. Федерация (Confederation)
|
### 7. Федерация (Confederation)
|
||||||
* **Enabled**: Позволяет серверу взаимодействовать с другими серверами мессенджера.
|
* **Enabled**: Позволяет серверу взаимодействовать с другими серверами.
|
||||||
* **ServerDescription**: Описание сервера. **Валидация: от 20 до 120 символов.**
|
* **ServerDescription**: Описание сервера (20-120 символов).
|
||||||
* **AllowedDomains**: Список доверенных доменов для обмена сообщениями.
|
* **AllowedDomains**: Список доверенных доменов.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Административные команды
|
## Административные команды
|
||||||
|
|
||||||
### Полное удаление пользователя ([DeleteUserCommand](file:///e:/GIT/forkmessager/backend/src/Modules/Conversations/Application/Users/Commands/DeleteUser/DeleteUserCommand.cs#13-14))
|
### Модерация пользователей
|
||||||
Операция, гарантирующая удаление персональных данных:
|
* **Полное удаление пользователя**: Операция, инициирующая каскадное удаление данных во всех модулях (Auth, Conversations, Profiles, Storage).
|
||||||
1. **Очистка сообщений**: Удаляются сообщения пользователя из MongoDB.
|
* **Сброс пароля**: Позволяет администратору принудительно изменить пароль любого пользователя.
|
||||||
2. **Очистка файлов**: Система проверяет вложения. Файл удаляется из S3, если на него нет ссылок в других чатах.
|
* **Блокировка (Ban)**: Ограничение доступа пользователя к системе.
|
||||||
3. **Очистка профиля**: Удаление из PostgreSQL (Auth и Conversations).
|
|
||||||
|
|
||||||
### Сброс пароля (`ResetUserPasswordCommand`)
|
|
||||||
Позволяет администратору принудительно изменить пароль любого пользователя.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## API Эндпоинты
|
## API Эндпоинты
|
||||||
* `GET /api/admin/settings` — Получение текущих настроек.
|
Все запросы требуют прав администратора (`AdminPolicy`).
|
||||||
* `PUT /api/admin/settings` — Обновление конфигурации.
|
|
||||||
* `DELETE /api/admin/users/{userId}` — Полное удаление пользователя.
|
* `GET /api/admin/settings` — Получение текущих настроек (через модуль Settings).
|
||||||
|
* `PUT /api/admin/settings` — Обновление конфигурации (делегируется модулю Settings).
|
||||||
|
* `DELETE /api/admin/users/{userId}` — Полное удаление пользователя и его контента.
|
||||||
|
* `POST /api/admin/users/{userId}/reset-password` — Сброс пароля.
|
||||||
|
|||||||
Reference in New Issue
Block a user