Skip to main content

verify_exchange_org_access

Function verify_exchange_org_access 

Source
pub async fn verify_exchange_org_access(
    user: &AuthenticatedUser,
    exchange_id: Uuid,
    exchange_use_cases: &LocalExchangeUseCases,
    building_use_cases: &BuildingUseCases,
    acp_use_cases: &AcpUseCases,
) -> Result<(), AppError>
Expand description

Vérifie le mandat de l’appelant sur l’organisation d’un échange local.

── Ce que cette garde protège ─────────────────────────────────────────────

Le système d’échange local — le SEL — enregistre qui rend quel service à qui, et pour combien de crédits. Six routes agissent sur un échange par son seul identifiant : le demander, le démarrer, le clore, l’annuler, noter le prestataire, noter le demandeur.

Les deux dernières comptent particulièrement : une note engage la réputation d’un voisin dans sa propre copropriété. La poser depuis une autre ACP n’a aucun sens légitime.

── Pourquoi elle délègue ─────────────────────────────────────────────────

Comme les dix autres gardes du module, elle remonte jusqu’à l’immeuble puis confie la comparaison à verify_building_org_access. C’est la duplication de cette comparaison, recopiée à la main dans chaque gestionnaire, que l’issue #772 désigne comme la cause première de la fuite.