From 1ff1cf899f1816b690970759e581c31a0bf73cef Mon Sep 17 00:00:00 2001 From: Benoit Lavenier <benoit.lavenier@e-is.pro> Date: Wed, 17 May 2023 11:03:14 +0200 Subject: [PATCH] [fix] Fix unit test 'Identities collision' [fix] BMA: parse query param "?pubkey" like "?pubkey=true" --- app/modules/bma/lib/controllers/wot.ts | 6 +++--- app/modules/bma/lib/parameters.ts | 10 ++++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/app/modules/bma/lib/controllers/wot.ts b/app/modules/bma/lib/controllers/wot.ts index 40686e297..73422c518 100644 --- a/app/modules/bma/lib/controllers/wot.ts +++ b/app/modules/bma/lib/controllers/wot.ts @@ -133,7 +133,7 @@ export class WOTBinding extends AbstractController { async certifiersOf(req: any): Promise<HttpCertifications> { const search = await ParametersService.getSearchP(req); let idty: FullIindexEntry; - if (req.query.pubkey) { + if (ParametersService.getIsPubkey(req)) { idty = (await this.server.dal.getWrittenIdtyByPubkeyForHashingAndIsMember( search )) as FullIindexEntry; @@ -188,7 +188,7 @@ export class WOTBinding extends AbstractController { async requirements(req: any): Promise<HttpRequirements> { const search = await ParametersService.getSearchP(req); let identities: any = []; - if (req.query.pubkey) { + if (ParametersService.getIsPubkey(req)) { if (!BMAConstants.PUBLIC_KEY.test(search)) { throw BMAConstants.ERRORS.NO_IDTY_MATCHING_PUB_OR_UID; } @@ -245,7 +245,7 @@ export class WOTBinding extends AbstractController { async certifiedBy(req: any): Promise<HttpCertifications> { const search = await ParametersService.getSearchP(req); let idty: FullIindexEntry; - if (req.query.pubkey) { + if (ParametersService.getIsPubkey(req)) { idty = (await this.server.dal.getWrittenIdtyByPubkeyForHashingAndIsMember( search )) as FullIindexEntry; diff --git a/app/modules/bma/lib/parameters.ts b/app/modules/bma/lib/parameters.ts index 49a437f26..c5463ecd9 100644 --- a/app/modules/bma/lib/parameters.ts +++ b/app/modules/bma/lib/parameters.ts @@ -96,6 +96,16 @@ export class ParametersService { callback(null, matches[0]); }; + static getIsPubkey(req: any): boolean { + const value = req.query.pubkey; + return ( + value !== null && + value !== undefined && + value !== "false" && + value !== false + ); + } + static getPubkeyP(req: any) { return Q.nbind(ParametersService.getPubkey, this)(req); } -- GitLab