lizerk 18ca956348 feat(groups): добавить Django сигналы для LDAP синхронизации + упростить GroupViewSet
Создан signals_group.py:
- post_save(Group): создание/обновление LdapGroup (cn, description, scope, security)
- post_delete(Group): удаление LdapGroup
- m2m_changed(Group.user_set): синхронизация участников (add/remove/clear)

Упрощен GroupViewSet (641 → 339 строк, -47%):
- create(): только создание в БД + временные атрибуты для сигнала
- partial_update(): передача _ldap_old_name и _ldap_description в сигнал
- destroy(): базовый ViewSet метод
- list(): удален sync_groups_catalog (должен быть в фоне/cron)
- rename: упрощен до установки _ldap_old_name и save()
- set_description: упрощен до установки _ldap_description и save()
- members: только БД запрос (без LDAP)
- add_members: user_set.add(), сигнал синхронизирует в LDAP
- remove_members: user_set.remove(), сигнал синхронизирует в LDAP
- replace_members: user_set.set(), сигнал синхронизирует в LDAP

Удалено:
- Все if ldap_enabled блоки
- Прямые вызовы DirectoryService в ViewSet
- Rollback логика при ошибках LDAP
- Helper методы: _resolve_group_dn, _members_payload_to_dns, _dns_to_users
- Импорты: DirectoryService, settings, transaction, LdapSyncState, _is_ldap_enabled

Зарегистрирован сигнал в employees/apps.py
2026-03-18 18:11:54 +03:00

Документация проекта EUSRR

Эта папка содержит всю документацию проекта, организованную по категориям.

📁 Структура

completed/

Завершенные задачи: рефакторинги, исправления, реализованные фичи (22 файла)

guides/

Активные руководства и инструкции для разработчиков (гайды по валидации, миграции, настройке)

architecture/

Архитектурная документация и анализ систем (рендеринг чата, архитектура страниц)

diagnostic/

Диагностические руководства (WebSocket 1006, отладка проблем)

in-progress/

Активные задачи в разработке (закупки, получатели заявок, календарь)

reports/

Отчеты и аудиты проекта (реорганизация документации, план очистки)

📝 Главная документация

  • README.md - основная документация проекта
  • docs/reports/ - отчеты и планы по проекту

🔍 Поиск информации

  • Завершенные фичи → completed/
  • Как настроить X → guides/
  • Как работает Y → architecture/
  • Проблемы с Z → diagnostic/
  • Что в разработке → in-progress/
  • Отчеты и аудиты → reports/
Description
Разработка — в develop; локальный CI работает через Git hooks и quality gates перед коммитом/пушем. После проверки — слияние в master. Push в master запускает blue-green деплой на CORP через Gitea Actions и Telegram-отчёт. Статус деплоя — «Действия».
https://corp.robotail.pro/ Readme 87 MiB
Languages
Python 47.7%
TypeScript 30%
JavaScript 15.5%
HTML 4%
SCSS 2.1%
Other 0.7%