BREAKING CHANGES:
- Removed OU=Roles from LDAP structure, role groups now created directly in department OU
- Role groups use ROLE_<Name> naming convention (similar to DEP_, POS_)
New features:
- RoleAssignment model: allows assigning roles to ANY employee, not just department members
- New API endpoints: /assign/, /revoke/, /assignments/ on DepartmentRoleViewSet
- Permission system updated: has_dept_perm() checks RoleAssignment first
- Employee profile shows external roles with 'внешняя роль' badge
- Employee list filter includes role-only employees with department_relation field
- Role assignment modal now searches all employees via AJAX
LDAP changes:
- _ensure_role_group(): creates ROLE_<Name> group in department OU
- assign_role(), revoke_role(): manage RoleAssignment + LDAP sync
- rename_role_group(), delete_role_group(): full lifecycle support
- Removed all references to OU=Roles
Migrations:
- 0035: Create RoleAssignment model
- 0036: Data migration from EmployeeDepartment.role
Tests:
- 7 new tests for role assignment (all passing)
Docs:
- 9 detailed reports on architecture, models, API, LDAP, tests
- Проверены все URL в notification_signals.py заявлений
- Все URLs уже корректны: /requests/{id}/
- Обновлен отчет NOTIFICATION_URLS_AUDIT.md с информацией о новых функциях
- Обновлен файл прогресса REQUESTS_DETAIL_PROGRESS.md
- Статус: 5/8 этапов завершено (62.5%)
- Исправлены некорректные URL в feed/notification_signals.py (/feed/post/{id}/ → /post/{id}/)
- Исправлены URL в documents/notification_signals.py (удален несуществующий /documents/{id}/)
- Добавлены 3 недостающих endpoint для Telegram интеграции в notifications/api_urls.py
- Создан отчет об аудите URL уведомлений (NOTIFICATION_URLS_AUDIT.md)
- Создан полный список всех эндпоинтов проекта (ENDPOINTS_LIST.md)
- Создана структура docs/ с категориями: completed, guides, architecture, diagnostic, in-progress, reports
- Перемещено 47+ MD файлов из корня проекта в docs/
- Удалено 6 устаревших/дублирующихся файлов
- Создана структура backend/scripts/ для тестов и утилит
- Перемещено 35 Python скриптов в backend/scripts/
- Создана структура backend/docs/ для технической документации
- Перемещено 12 MD файлов backend в backend/docs/
- Перемещены LDAP тестовые данные в backend/tests/fixtures/
- Добавлены README файлы для навигации
- Добавлены правила в .github/copilot-instructions.md для размещения документации
Результат:
- Корень проекта: только README.md
- Корень backend/: только manage.py и Django приложения
- Вся документация организована в структурированные папки