# ТЗ: Модуль Администратор Связанные документы: - [План реорганизации](plan.md) - [Карта нового меню](menu.md) - [Исходное ТЗ](source-tz.md) ## 1. Назначение Модуль `Администратор` объединяет административные функции Manager 2.0: - пользователи; - роли и права; - настройки; - справочники; - импорт/экспорт; - служебные операции. В текущей CRM аналогичная группа называется `Администрирование`. ## 2. Статус Статус модуля: **реализован, требуется переименование группы меню**. В текущей CRM уже есть: - подрядчики; - договоры; - пользователи; - роли и права; - настройки; - округа; - районы; - журнал уведомлений; - импорт; - экспорт/импорт года; - удаление данных. ## 3. Место в меню Целевое меню: ```text Администратор ├── Подрядчики ├── Договоры ├── Пользователи ├── Роли и права ├── Настройки ├── Округа ├── Районы ├── Журнал уведомлений ├── Импорт ├── Экспорт/Импорт года └── Удалить данные ``` Требования: - переименовать группу `Администрирование` в `Администратор`; - сохранить текущие подпункты; - все административные подпункты, включая `Подрядчики`, показывать только внутри группы `Администратор`; - не оставлять специальное поведение, при котором `Подрядчики` выводятся отдельным верхним пунктом при ограниченных правах; - текущие маршруты не переименовывать; - текущие права не менять. ## 4. Текущие соответствия | Пункт | Маршрут | Статус | |---|---|---| | Подрядчики | `contractors.index` | Есть | | Договоры | `contract.index` | Есть | | Пользователи | `user.index` | Есть | | Роли и права | `admin.roles.index` | Есть | | Настройки | `admin.settings.index` | Есть | | Округа | `admin.district.index` | Есть | | Районы | `admin.area.index` | Есть | | Журнал уведомлений | `admin.notifications.log` | Есть | | Импорт | `import.index` | Есть | | Экспорт/Импорт года | `year-data.index` | Есть | | Удалить данные | `clear-data.index` | Есть | ## 5. Права доступа На первом этапе оставить текущие права: - `contractors.view`; - `contracts.view`; - `users.view`; - `admin.roles`; - `admin.settings.view`; - `districts.view`; - `areas.view`; - `admin.notification_logs.view`; - `import.view`; - `admin.year_data.view`; - `admin.clear_data.view`. Требования: - не вводить новые права; - сохранить текущие проверки прав для дочерних пунктов; - группа `Администратор` показывается, если доступен хотя бы один дочерний пункт. - пункт `Подрядчики` не показывается отдельным верхним пунктом, даже если у пользователя есть только `contractors.view`. ## 6. Функциональные требования Сохранить текущую функциональность: - управление пользователями; - управление ролями и правами; - настройки системы; - справочники округов и районов; - подрядчики и договоры; - импорт данных; - экспорт/импорт года; - журнал уведомлений; - удаление данных. ## 7. Что не входит в первый этап - переработка ролей и permissions; - изменение маршрутов; - изменение логики импорта; - изменение логики удаления данных; - перенос справочников; - изменение моделей. ## 8. Этапы реализации - [ ] Переименовать группу меню `Администрирование` в `Администратор`. - [ ] Сохранить все текущие подпункты. - [ ] Перенести `Подрядчики` внутрь группы `Администратор` без отдельного верхнего пункта. - [ ] Проверить отображение для администратора. - [ ] Проверить отображение для пользователя с частичными административными правами. - [ ] Проверить, что пользователь только с `contractors.view` видит группу `Администратор` и пункт `Подрядчики` внутри нее. - [ ] Проверить маршруты всех подпунктов. - [ ] Проверить, что текущие права работают без изменений. ## 9. Критерии приемки - В меню группа называется `Администратор`. - Все существующие административные пункты доступны по текущим правам. - Текущие маршруты сохранены. - Пользователь без административных прав не видит группу. - Пользователь с одним административным правом видит группу и доступный ему пункт. - `Подрядчики` всегда отображаются внутри группы `Администратор`, а не отдельным верхним пунктом.