Игорь Надеин fff16130f3 feat(department-roles): complete LDAP architecture redesign with RoleAssignment model
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
2025-12-30 10:35:34 +03:00
..

Backend Documentation

Техническая документация по backend части проекта EUSRR.

📁 Структура

guides/

Руководства разработчика - инструкции по работе с различными модулями

  • CONTEXT_MENU_GUIDE.md - работа с контекстными меню
  • REACTIONS_GUIDE.md - система реакций

troubleshooting/

Отладка и исправления - диагностика проблем

  • CONTEXT_MENU_DEBUG.md - отладка контекстного меню
  • MESSAGE_DELETE_DEBUG.md - отладка удаления сообщений
  • MESSAGE_DELETE_FIX.md - исправление проблем удаления

architecture/

Архитектурная документация - устройство систем

  • API_ANALYSIS.md - анализ API
  • API_REFACTORING_SUMMARY.md - результаты рефакторинга API
  • VIEWSET_ANALYSIS.md - анализ ViewSet

testing/

Тестирование - планы и результаты тестирования

  • POSITION_PERMISSIONS_TESTING.md - тестирование прав должностей
  • REQUESTS_API_TESTING_PLAN.md - план тестирования API заявок
  • TEST_IMAGE_SCRIPTS.md - скрипты тестирования изображений

reports/

Отчеты и аудиты - результаты проверок и реорганизаций

  • BACKEND_CLEANUP_AUDIT.md - аудит очистки backend/
  • REQUESTS_API_TESTING_PLAN.md - план тестирования API заявок
  • TEST_IMAGE_SCRIPTS.md - скрипты тестирования изображений

🔍 Навигация

По типу задачи:

Связанная документация:

  • /docs/ - общая документация проекта
  • backend/scripts/ - вспомогательные скрипты

📝 Правила

Добавление новой документации:

  1. Guides - постоянные инструкции, reference материалы
  2. Troubleshooting - временные документы, после решения → удалить
  3. Architecture - долгосрочная документация, обновлять при изменениях
  4. Testing - планы тестирования, после завершения → архивировать

Формат файлов:

# Заголовок

**Дата:** DD.MM.YYYY  
**Автор:** Имя  
**Статус:** Актуально / Устарело / В процессе

## Описание
...

## Использование
...

## Примеры
...

🔄 Жизненный цикл

  1. Создание - документируйте новую фичу/проблему
  2. Актуализация - обновляйте при изменениях
  3. Архивация - после завершения/решения
  4. Удаление - если больше не актуально

Поддерживайте документацию актуальной! 📚