feat: partage dirigé entre utilisateurs #196
CI / test (push) Canceled after 0s
CI / security (push) Canceled after 0s
CI / build (push) Canceled after 0s
CI / e2e (push) Canceled after 0s
CI / lint (push) Canceled after 1m29s

- create_share/shared_with + validation des destinataires
- gate auth sur /s/{token} (+pdf, raw) : 404 opaque hors créateur/admin/destinataires
- GET /api/shares scopé (non-admin = créés + reçus), révocation créateur/admin
- UI : dialogue dirigé/public + destinataires, dashboard « partagé par X »
- i18n FR/EN, tests test_directed_shares.py (9), fiche feature
This commit is contained in:
2026-10-10 20:14:29 -04:00
parent fd192df036
commit 49c715199d
18 changed files with 410 additions and 43 deletions
+29 -1
View File
@@ -6,7 +6,7 @@ Format basé sur [Keep a Changelog](https://keepachangelog.com/fr/1.1.0/),
et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
> **En cours de développement** : les changements à venir sont listés dans la section
> [Unreleased](#unreleased). La dernière version livrée est **2.65.2**.
> [Unreleased](#unreleased). La dernière version livrée est **2.66.0**.
---
@@ -14,6 +14,34 @@ et [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
---
## [2.66.0] — 2026-10-10
### Ajouté
- **#196 — Partage dirigé entre utilisateurs**
- Un utilisateur peut partager un document à un ou plusieurs comptes
précis (champ destinataires dans le dialogue de partage, noms séparés
par des virgules) : les pages `/s/{token}` (+ PDF, téléchargement brut)
exigent alors une session et n'acceptent que le créateur, les admins et
les destinataires — 404 opaque sinon (l'existence d'un token dirigé
n'est pas confirmable de l'extérieur).
- Dashboard : les partages reçus s'affichent avec « Partagé par X » et
s'ouvrent en lecture seule via la page de partage ; pas de bouton
révoquer pour un destinataire.
- Rétrocompatible : les partages publics existants (sans destinataires)
restent accessibles anonymement.
### Sécurité
- **#196 — `GET /api/shares` scopé** : un utilisateur non-admin ne voit plus
TOUS les partages de l'instance, mais uniquement ceux qu'il a créés ou
reçus (fuite préexistante, intenable avec le partage user-to-user). La
révocation d'un partage est réservée à son créateur ou à un admin.
- i18n FR/EN (7 nouvelles clés), tests `tests/test_directed_shares.py` (9),
fiche `docs/features/directed-shares-196.md`.
---
## [2.65.2] — 2026-10-10
### Corrigé