From 28fb8c25de3469c57906799ba8179d7d92a04862 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A5=D0=B0=D0=BB=D0=B8=D0=BC=D0=BE=D0=B2=20=D0=A0=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BC?= Date: Fri, 27 Mar 2026 15:48:09 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=BA=D1=83=D0=BC=D0=B5=D0=BD?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B0=D0=B4=D0=BC=D0=B8=D0=BD?= =?UTF-8?q?=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/Docs/admin_module_documentation.md | 48 +++++++++---------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/backend/src/Docs/admin_module_documentation.md b/backend/src/Docs/admin_module_documentation.md index 404743a..12c6584 100644 --- a/backend/src/Docs/admin_module_documentation.md +++ b/backend/src/Docs/admin_module_documentation.md @@ -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) * **DomainUrl**: Базовый URL домена сервера. @@ -28,50 +35,43 @@ * **EnableFolders**: Включить функционал папок для группировки чатов. ### 4. Настройки сообщений (Messages) -Администратор может гибко управлять правами пользователей на работу с контентом: * **AllowPolls**: Разрешить создание опросов (аналог Telegram). * **AllowMedia**: Разрешить отправку файлов/фото/видео. * **AllowVoiceMessages**: Разрешить отправку голосовых сообщений. * **AllowForwarding**: Разрешить пересылку сообщений в другие чаты. -* **AllowReplies**: Разрешить ответы на сообщения. -* **AllowQuoting**: Разрешить цитирование текста. -* **AllowPinning**: Разрешить закрепление сообщений в чатах. -* **AllowMessageDeletion**: Разрешить удаление сообщений. -* **ForbidCopying**: При включении запрещает копирование текста и сохранение медиафайлов из чатов. -* **AllowLinks**: Разрешить вставку активных гиперссылок. +* **ForbidCopying**: Запрет копирования текста и сохранения медиафайлов. * **MaxMediaSizeBytes**: Глобальный лимит на размер вложения. ### 5. Настройки WebRTC (Голос/Видео) * **Enabled**: Общий переключатель звонков. * **Voice/Video Calls**: Разрешить аудио и видео звонки отдельно. * **ScreenSharing**: Разрешить демонстрацию экрана. -* **TURN Configuration**: IP, логин и пароль для TURN-сервера (необходим для обхода NAT). +* **TURN Configuration**: Данные для TURN-сервера (IP, логин, пароль). ### 6. Интеграция Klipy * **Enabled**: Включить сервис GIF и стикеров Klipy. * **AppName / Token**: Параметры аутентификации в API Klipy. ### 7. Федерация (Confederation) -* **Enabled**: Позволяет серверу взаимодействовать с другими серверами мессенджера. -* **ServerDescription**: Описание сервера. **Валидация: от 20 до 120 символов.** -* **AllowedDomains**: Список доверенных доменов для обмена сообщениями. +* **Enabled**: Позволяет серверу взаимодействовать с другими серверами. +* **ServerDescription**: Описание сервера (20-120 символов). +* **AllowedDomains**: Список доверенных доменов. --- ## Административные команды -### Полное удаление пользователя ([DeleteUserCommand](file:///e:/GIT/forkmessager/backend/src/Modules/Conversations/Application/Users/Commands/DeleteUser/DeleteUserCommand.cs#13-14)) -Операция, гарантирующая удаление персональных данных: -1. **Очистка сообщений**: Удаляются сообщения пользователя из MongoDB. -2. **Очистка файлов**: Система проверяет вложения. Файл удаляется из S3, если на него нет ссылок в других чатах. -3. **Очистка профиля**: Удаление из PostgreSQL (Auth и Conversations). - -### Сброс пароля (`ResetUserPasswordCommand`) -Позволяет администратору принудительно изменить пароль любого пользователя. +### Модерация пользователей +* **Полное удаление пользователя**: Операция, инициирующая каскадное удаление данных во всех модулях (Auth, Conversations, Profiles, Storage). +* **Сброс пароля**: Позволяет администратору принудительно изменить пароль любого пользователя. +* **Блокировка (Ban)**: Ограничение доступа пользователя к системе. --- ## API Эндпоинты -* `GET /api/admin/settings` — Получение текущих настроек. -* `PUT /api/admin/settings` — Обновление конфигурации. -* `DELETE /api/admin/users/{userId}` — Полное удаление пользователя. +Все запросы требуют прав администратора (`AdminPolicy`). + +* `GET /api/admin/settings` — Получение текущих настроек (через модуль Settings). +* `PUT /api/admin/settings` — Обновление конфигурации (делегируется модулю Settings). +* `DELETE /api/admin/users/{userId}` — Полное удаление пользователя и его контента. +* `POST /api/admin/users/{userId}/reset-password` — Сброс пароля.