Skip to main content

verify_technical_spec_org_access

Function verify_technical_spec_org_access 

Source
pub async fn verify_technical_spec_org_access(
    user: &AuthenticatedUser,
    spec_id: Uuid,
    spec_use_cases: &TechnicalSpecUseCases,
    acp_use_cases: &AcpUseCases,
) -> Result<(), AppError>
Expand description

Vérifie le mandat de l’appelant sur l’ACP d’une fiche technique.

── Pourquoi l’ACP, et non l’immeuble ─────────────────────────────────────

TechnicalSpec porte acp_id: Uuid obligatoire et building_id: Option<Uuid>. Une fiche peut donc concerner l’ACP entière sans viser un immeuble précis — un marché d’entretien couvrant tout le patrimoine, par exemple.

Remonter par l’immeuble aurait laissé sans contrôle toutes les fiches dont il est absent. Le périmètre juste est celui que l’entité rend obligatoire, et c’est l’ACP.

C’est le genre de choix qu’on ne peut pas recopier d’un garde voisin : les onze autres remontent à l’immeuble parce que leurs entités le portent toujours. Ici, suivre le modèle aurait produit un trou pour les fiches sans immeuble — soit exactement les plus larges (#772).