From e03f07a8eff56398b1e99b8aa10a73eeff21a573 Mon Sep 17 00:00:00 2001 From: prafull-opensignlabs Date: Thu, 7 Nov 2024 14:12:15 +0530 Subject: [PATCH] fix: incompatible pdf issue and signturetype issues --- .../cloud/parsefunction/getTenant.js | 66 ++++++++++++------- 1 file changed, 44 insertions(+), 22 deletions(-) diff --git a/apps/OpenSignServer/cloud/parsefunction/getTenant.js b/apps/OpenSignServer/cloud/parsefunction/getTenant.js index af7a3139b..e0f33d473 100644 --- a/apps/OpenSignServer/cloud/parsefunction/getTenant.js +++ b/apps/OpenSignServer/cloud/parsefunction/getTenant.js @@ -1,29 +1,48 @@ import { parseJwt } from '../../Utils.js'; import jwt from 'jsonwebtoken'; -async function getTenantByUserId(userId) { +async function getTenantByUserId(userId, contactId) { try { - const query = new Parse.Query('contracts_Users'); - query.equalTo('UserId', { - __type: 'Pointer', - className: '_User', - objectId: userId, - }); - const extuser = await query.first({ useMasterKey: true }); - if (extuser) { - const user = extuser?.get('CreatedBy')?.id || userId; - const tenantCreditsQuery = new Parse.Query('partners_Tenant'); - tenantCreditsQuery.equalTo('UserId', { + if (contactId) { + const contactquery = new Parse.Query('contracts_Contactbook'); + contactquery.equalTo('objectId', contactId); + const contactuser = await contactquery.first({ useMasterKey: true }); + if (contactuser) { + const user = contactuser?.get('CreatedBy')?.id || userId; + const tenantCreditsQuery = new Parse.Query('partners_Tenant'); + tenantCreditsQuery.equalTo('UserId', { + __type: 'Pointer', + className: '_User', + objectId: user, + }); + tenantCreditsQuery.exclude('FileAdapters,PfxFile,ContactNumber'); + const res = await tenantCreditsQuery.first({ useMasterKey: true }); + return res; + } else { + return {}; + } + } else { + const query = new Parse.Query('contracts_Users'); + query.equalTo('UserId', { __type: 'Pointer', className: '_User', - objectId: user, + objectId: userId, }); - tenantCreditsQuery.exclude('FileAdapters'); - tenantCreditsQuery.exclude('PfxFile'); - const res = await tenantCreditsQuery.first({ useMasterKey: true }); - return res; - } else { - return {}; + const extuser = await query.first({ useMasterKey: true }); + if (extuser) { + const user = extuser?.get('CreatedBy')?.id || userId; + const tenantCreditsQuery = new Parse.Query('partners_Tenant'); + tenantCreditsQuery.equalTo('UserId', { + __type: 'Pointer', + className: '_User', + objectId: user, + }); + tenantCreditsQuery.exclude('FileAdapters,PfxFile'); + const res = await tenantCreditsQuery.first({ useMasterKey: true }); + return res; + } else { + return {}; + } } } catch (err) { console.log('err in getTenant ', err); @@ -33,6 +52,7 @@ async function getTenantByUserId(userId) { export default async function getTenant(request) { const jwttoken = request.headers.jwttoken || ''; const userId = request.params.userId || ''; + const contactId = request.params.contactId || ''; if (jwttoken) { const jwtDecode = parseJwt(jwttoken); if (jwtDecode?.user_email) { @@ -50,12 +70,14 @@ export default async function getTenant(request) { const appRes = await tokenQuery.first({ useMasterKey: true }); const decoded = jwt.verify(verifyToken, appRes?.get('token')); if (decoded?.user_email) { - return await getTenantByUserId(apiUserId); + return await getTenantByUserId(apiUserId, contactId); } else { return { status: 'error', result: 'Invalid token!' }; } } - } else if (userId) { - return await getTenantByUserId(userId); + } else if (userId || contactId) { + return await getTenantByUserId(userId, contactId); + } else { + return {}; } }