Add admin maintenance endpoints and file deletion functionality
- Introduced a new `/api/admin/maintenance` route for administrative maintenance tasks, requiring admin authorization. - Implemented the `DeleteAsync` method in `IFileStorage` to allow for the deletion of files associated with closed support tickets. - Updated API documentation to include details about the new maintenance operations and their effects on closed tickets. - Enhanced frontend routing to include the new maintenance section in the admin panel, improving navigation for administrators. - Added localization support for maintenance-related actions in both Russian and English.
This commit is contained in:
+14
-1
@@ -170,7 +170,20 @@ Support.CannotRequestAdminRole`), либо все три поля новой р
|
||||
новую — сперва создаётся `AppRole` (`IRoleService.CreateRoleAsync`), затем назначается. То же самое
|
||||
администратор может сделать **из Telegram, не заходя на сайт** — инлайн-кнопки на уведомлении о
|
||||
заявке (см. [telegram-bot.md](telegram-bot.md)); для баг-репортов в Telegram только кнопка-ссылка
|
||||
на `/admin/support/{id}` — переписка и вложения только на сайте.
|
||||
на `/admin/support?ticket={id}` — переписка и вложения только на сайте (отдельного роута на конкретный
|
||||
тикет нет, `?ticket=` открывает диалог поверх списка).
|
||||
|
||||
## Admin — Maintenance
|
||||
|
||||
Группа `/api/admin/maintenance`, `RequireAuthorization(RoleNames.Admin)`. Вкладка «Обслуживание» —
|
||||
разовые операции подчистки, задумана расширяемой (следующие кандидаты: очистка старых новостей и т.п.).
|
||||
|
||||
| Метод | Путь | Тело ответа |
|
||||
| ------ | -------------------------------------- | ------------- |
|
||||
| DELETE | `/api/admin/maintenance/tickets/closed` | `{ deletedCount }` — удаляет все тикеты в статусе `Closed` вместе с комментариями и вложениями (файлы стираются с диска через `IFileStorage.DeleteAsync`) |
|
||||
|
||||
Тикет/комментарий/вложение — плоские сущности без FK-каскада (см. `SupportTicket`), поэтому хендлер
|
||||
удаляет вручную в порядке вложения → комментарии → тикеты.
|
||||
|
||||
## Admin — Activation, Roles
|
||||
|
||||
|
||||
@@ -307,6 +307,9 @@ UI **настойчиво напоминает** привязать его (ед
|
||||
- Доступ — только активированному пользователю (`IRequiresActivation`, как и у конфигов/новостей);
|
||||
админские действия (resolve/close/approve/reject) идут по отдельным `/api/admin/support/*` с
|
||||
ролевой проверкой, без завязки на активацию.
|
||||
- `Closed`-тикеты не удаляются автоматически — админ может подчистить их вручную (вкладка
|
||||
«Обслуживание», `DELETE /api/admin/maintenance/tickets/closed`), это удаляет и `TicketComment`/
|
||||
`TicketAttachment` (+ файлы на диске), необратимо.
|
||||
|
||||
### TicketComment — сообщение в переписке
|
||||
Плоская сущность (не навигационная коллекция на `SupportTicket` — конвенция проекта, см.
|
||||
|
||||
Reference in New Issue
Block a user