pub async fn verify_owner_org_access(
user: &AuthenticatedUser,
owner_id: Uuid,
owner_use_cases: &OwnerUseCases,
) -> Result<(), AppError>Expand description
Vérifie le mandat de l’appelant sur l’organisation d’un copropriétaire.
── Pourquoi cette garde-ci compte plus que les autres ─────────────────────
Les routes portées par un copropriétaire servent, nominativement, ce qu’une personne doit et ce qu’elle a payé :
GET /owners/{id}/payments montants et dates
GET /owners/{id}/payments/total ce qu'elle a versé
GET /owners/{id}/payment-methods ses instruments enregistrés
GET /owners/{id}/payment-reminders ses rappels, donc ses retards
GET /owners/{id}/distributions sa quote-part de chaque charge
GET /owners/{id}/total-due ce qu'elle doitUn identifiant de copropriétaire suffisait à les obtenir. Ce n’est pas un écart de périmètre, c’est la situation financière d’une personne nommée servie à qui la demande — au sens du RGPD, une violation de données.
── Le chemin est court, et c’est ce qui le rend sûr ───────────────────────
Owner porte directement son organization_id (domain/copropriete/owner.rs:9).
Pas de chaîne à remonter, donc pas de chaîne à recopier de travers — c’est
la recopie manuelle d’une chaîne de quatre sauts qui avait laissé fuir les
bulletins de vote nominatifs (RN-2, issue #772).
Sémantique : superadmin passe ; sinon le copropriétaire doit exister et relever de l’organisation de l’appelant. Un copropriétaire introuvable est refusé plutôt qu’ignoré.