From 64a75c4015fa7bcad366c42dc88c79fecef2427a Mon Sep 17 00:00:00 2001 From: Thibaut Dusanter Date: Wed, 8 Jan 2025 08:56:50 +0100 Subject: [PATCH] =?UTF-8?q?fix(backend/indicateurs):=20ne=20v=C3=A9rifie?= =?UTF-8?q?=20pas=20en=20plus=20la=20permission=20INDICATEURS=5FEDITION=20?= =?UTF-8?q?pour=20l'=C3=A9criture=20de=20la=20trajectoire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../indicateurs/trajectoires/trajectoire-snbc.e2e-spec.ts | 7 +++++++ .../trajectoires/trajectoires-spreadsheet.service.ts | 2 +- backend/src/indicateurs/valeurs/crud-valeurs.service.ts | 4 ++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/backend/src/indicateurs/trajectoires/trajectoire-snbc.e2e-spec.ts b/backend/src/indicateurs/trajectoires/trajectoire-snbc.e2e-spec.ts index 4f3a636233..a07b3626d0 100644 --- a/backend/src/indicateurs/trajectoires/trajectoire-snbc.e2e-spec.ts +++ b/backend/src/indicateurs/trajectoires/trajectoire-snbc.e2e-spec.ts @@ -295,6 +295,13 @@ describe('Calcul de trajectoire SNBC', () => { }); }); + it(`Calcul avec droit suffisant - lecture`, async () => { + return request(app.getHttpServer()) + .get('/trajectoires/snbc?collectiviteId=3895') + .set('Authorization', `Bearer ${yoloDodoToken}`) + .expect(200); + }, 30000); + it(`Verification et calcul avec donnees completes`, async () => { // Suppression de la trajectoire snbc existante si le test est joué plusieurs fois await request(app.getHttpServer()) diff --git a/backend/src/indicateurs/trajectoires/trajectoires-spreadsheet.service.ts b/backend/src/indicateurs/trajectoires/trajectoires-spreadsheet.service.ts index 56d7719e8c..5f12294b2c 100644 --- a/backend/src/indicateurs/trajectoires/trajectoires-spreadsheet.service.ts +++ b/backend/src/indicateurs/trajectoires/trajectoires-spreadsheet.service.ts @@ -324,7 +324,7 @@ export default class TrajectoiresSpreadsheetService { const upsertedTrajectoireIndicateurValeurs = await this.valeursService.upsertIndicateurValeurs( indicateurValeursTrajectoireResultat, - tokenInfo + undefined // we don't want to check permission, we have already checked it and it's not the same ); // Maintenant que les indicateurs ont été créés, on peut ajouter la collectivité au groupement diff --git a/backend/src/indicateurs/valeurs/crud-valeurs.service.ts b/backend/src/indicateurs/valeurs/crud-valeurs.service.ts index 9b142108c6..df75c0a60a 100644 --- a/backend/src/indicateurs/valeurs/crud-valeurs.service.ts +++ b/backend/src/indicateurs/valeurs/crud-valeurs.service.ts @@ -307,7 +307,7 @@ export default class CrudValeursService { async upsertIndicateurValeurs( indicateurValeurs: IndicateurValeurInsert[], - tokenInfo: AuthenticatedUser + tokenInfo: AuthenticatedUser | undefined ): Promise { if (tokenInfo) { const collectiviteIds = [ @@ -331,7 +331,7 @@ export default class CrudValeursService { } this.logger.log( - `Upsert des ${indicateurValeurs.length} valeurs des indicateurs pour l'utilisateur ${tokenInfo.id} (role ${tokenInfo.role})` + `Upsert des ${indicateurValeurs.length} valeurs des indicateurs pour l'utilisateur ${tokenInfo?.id} (role ${tokenInfo?.role})` ); // On doit distinguer les valeurs avec et sans métadonnées car la clause d'unicité est différente (onConflictDoUpdate) const [indicateurValeursAvecMetadonnees, indicateurValeursSansMetadonnees] =