fcaf8b85c84935f60d7b84e43f3f4d461c36350f
Нужен внешний (без входа в ACORE) read-only доступ к документам аптеки — для сторон вроде поставщиков/проверяющих. Для сотрудников внутренний доступ уже был (access.can_access_pharmacy_docs через виджет портала), это отдельный, внешний путь. - NextcloudSharingService — клиент OCS Files Sharing API (публичные ссылки, идемпотентно: сначала проверяет существующую шару на путь, не плодит дубли). - webdav_service.ensure_dir() — идемпотентный MKCOL (в отличие от mkdir(), который должен падать на дубликате — так и оставлен для UI). - PharmacyPublicLink — аптека ↔ URL + share_id (для последующего отзыва/ обновления). - sync_service.sync_pharmacy(): больше не использует Group Folders (аптечные сотрудники учёток Nextcloud не имеют — ACL по AD-группам тут не нужен, это была подготовка под LDAP, которая пока не горит). Теперь — обычная WebDAV-папка под сервисным аккаунтом + публичная RO-ссылка. Попутно чинит сегодняшний блокер: --pharmacies-only больше не зависит от сломанного (404) Group Folders API — клиенты в NextcloudSyncService стали ленивыми. - Отделы (sync_department) не тронуты — Group Folders/LDAP остаётся архитектурным заделом на будущее, не нужно прямо сейчас. Тесты: SharingServiceTests, SyncPharmacyPublicLinkTests (идемпотентность, обновление URL, обработка ошибок WebDAV, dry-run). 326 тестов в затронутых приложениях — зелёные. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Description
No description provided
Languages
Python
63.8%
HTML
27.5%
JavaScript
6.1%
CSS
2.5%