Раздел «Справка» (категории/статьи/предложка), правки ad_connector
и обновление тестов feed под обязательную 2FA.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Remove the is_staff permission bridge, tighten intern credential handling with one-time PDFs and random seed passwords, and let staff manage cash registers from the portal.
Co-authored-by: Cursor <cursoragent@cursor.com>
- 2FA: убраны /api/ и /media/ из ALLOWED_PREFIXES — staff-сессия без TOTP
больше не дотягивается до API/медиа (устройства в /api/ идут без staff-сессии)
- Nextcloud «Обмен»: writable только для staff (не для любого logged-in)
- Nextcloud путь отдела/адрес аптеки: safe_component() санитайзит сегмент
(сепараторы/управляющие/ведущие точки) в провижининге и в браузере
- Mattermost: shared secret кнопки «Виконано» перенесён из query string в
context (тело POST) — без утечки в логи/Referer
- Login: throttle на кэше (5 попыток / 5 мин, 429); logout только POST (CSRF),
logout-ссылки в шаблонах → POST-формы
Тесты обновлены под enforcement 2FA (login_2fa helper) и новые правила.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- ad_connector: страницы управления OU и импорта из AD, поле ad_ou_dn
в Directory, ADSyncLog; расширение sync-сервиса и клиента
- mattermost_connector: personal access token шифруется (Fernet,
token_service), бот-сервис, команды создания бота и синхронизации;
публикация постов в каналы. Тесты (19)
- core: ConnectorConfig, Directory (ad_ou_dn), обновления админки
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- ad_connector: restrict provisioning to office employees
(user_location_type='office') in sync service, signals and command;
disable AD account on transfer out of office, re-enable on return
- ad_connector: /ad-mapping/ page (staff only) — match office employees
to AD accounts with suggestions by email/login/full name, link/unlink/
create actions, list of unmatched domain accounts; sidebar nav item
- core: auto-rebuild treenode Directory tree (_path/_depth) after
import-export imports and post_migrate; "rebuild tree" button in
DirectoryAdmin and rebuild_directory_tree management command
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>