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