pub async fn verify_ticket_org_access(
user: &AuthenticatedUser,
ticket_id: Uuid,
ticket_use_cases: &TicketUseCases,
building_use_cases: &BuildingUseCases,
acp_use_cases: &AcpUseCases,
) -> Result<(), AppError>Expand description
Vérifie le mandat de l’appelant sur l’organisation d’un ticket.
── Ce que cette garde ajoute à ce qui existait ───────────────────────────
syndic_response_handlers appelait déjà require_syndic_or_superadmin, et
ce contrôle est juste : répondre à un ticket est un acte de gestion, pas de
copropriétaire.
Mais il vérifie le RÔLE, et rien d’autre. Un syndic de l’organisation A y passait pour répondre au ticket d’un copropriétaire de l’organisation B — et sa réponse s’y inscrivait, signée de son nom.
Les deux contrôles sont donc nécessaires et ne se remplacent pas : l’un dit « vous avez qualité pour cela », l’autre « ce ticket est bien le vôtre ». C’est la distinction que l’issue #772 demande de tenir, et que le tableau de bord du conseil (#816) illustrait déjà.