diff --git a/apps/OpenSignServer/cloud/customRoute/autoReminder.js b/apps/OpenSignServer/cloud/customRoute/autoReminder.js index a93c4291d..25f8c19f0 100644 --- a/apps/OpenSignServer/cloud/customRoute/autoReminder.js +++ b/apps/OpenSignServer/cloud/customRoute/autoReminder.js @@ -88,7 +88,7 @@ export default async function autoReminder(request, response) { docQuery.exists('Signers'); docQuery.exists('SignedUrl'); docQuery.descending('createdAt'); - docQuery.include('Signers,AuditTrail.UserPtr,ExtUserPtr'); + docQuery.include('Signers,AuditTrail.UserPtr,ExtUserPtr,ExtUserPtr.TenantId'); docQuery.notEqualTo('IsCompleted', true); docQuery.notEqualTo('IsDeclined', true); docQuery.notEqualTo('IsArchive', true); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteDocument.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteDocument.js index b166ec2ef..4f9829f46 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteDocument.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteDocument.js @@ -20,6 +20,7 @@ export default async function deleteDocument(request, response) { const Document = new Parse.Query('contracts_Document'); Document.equalTo('objectId', request.params.document_id); Document.equalTo('CreatedBy', userPtr); + Document.include('ExtUserPtr.TenantId'); const res = await Document.first({ useMasterKey: true }); if (res) { const isArchive = res.get('IsArchive'); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteFolder.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteFolder.js index d443eb390..c64bb4fc6 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteFolder.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/deleteFolder.js @@ -22,6 +22,7 @@ export default async function deleteFolder(request, response) { obj.equalTo('objectId', folderId); obj.equalTo('IsArchive', true); obj.equalTo('CreatedBy', userPtr); + obj.include('ExtUserPtr.TenantId'); const isFolderDeleted = await obj.first({ useMasterKey: true }); if (!isFolderDeleted) { const folder = new Parse.Query('contracts_Document'); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocument.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocument.js index 12751a62d..123aa7b60 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocument.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocument.js @@ -24,6 +24,7 @@ export default async function getDocument(request, response) { Document.include('Folder'); Document.include('ExtUserPtr'); Document.include('Placeholders.signerPtr'); + Document.include('ExtUserPtr.TenantId'); const res = await Document.first({ useMasterKey: true }); if (res) { const document = JSON.parse(JSON.stringify(res)); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocumentList.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocumentList.js index d98e939f4..3a163472f 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocumentList.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getDocumentList.js @@ -62,7 +62,7 @@ export default async function getDocumentList(request, response) { 'X-Parse-Application-Id': appId, 'X-Parse-Master-Key': process.env.MASTER_KEY, }; - const url = `${serverUrl}/classes/${clsName}?where=${strParams}&keys=${strKeys},Placeholders&order=${orderBy}&skip=${skip}&limit=${limit}&include=AuditTrail.UserPtr,Placeholders.signerPtr`; + const url = `${serverUrl}/classes/${clsName}?where=${strParams}&keys=${strKeys},Placeholders&order=${orderBy}&skip=${skip}&limit=${limit}&include=AuditTrail.UserPtr,Placeholders.signerPtr,ExtUserPtr.TenantId`; try { const res = await axios.get(url, { headers: headers }); if (res.data && res.data.results.length > 0) { diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getFolder.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getFolder.js index a3e447de1..2479811c9 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getFolder.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getFolder.js @@ -25,7 +25,7 @@ export default async function getFolder(request, response) { folderCls.notEqualTo('IsArchive', true); folderCls.descending('createdAt'); folderCls.include('Folder'); - + folderCls.include('ExtUserPtr.TenantId'); const res = await folderCls.first({ useMasterKey: true }); if (res) { const parseRes = JSON.parse(JSON.stringify(res)); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/getFolderList.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/getFolderList.js index b55b16d5b..78a9298c2 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/getFolderList.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/getFolderList.js @@ -35,6 +35,7 @@ export default async function getFolderList(request, response) { folderCls.doesNotExist('Folder'); } folderCls.descending('createdAt'); + folderCls.include('ExtUserPtr.TenantId'); folderCls.limit(limit); folderCls.skip(skip); const res = await folderCls.find({ useMasterKey: true }); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/resendMail.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/resendMail.js index b72d00528..5257b39e9 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/resendMail.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/resendMail.js @@ -35,7 +35,7 @@ export default async function resendMail(request, response) { docQuery.notEqualTo('IsArchive', true); docQuery.greaterThanOrEqualTo('ExpiryDate', new Date()); docQuery.exists('SignedUrl'); - + docQuery.include('ExtUserPtr.TenantId'); const resDoc = await docQuery.first({ useMasterKey: true }); // console.log("resDoc ",resDoc) if (resDoc) { diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/updateDocument.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateDocument.js index c85254259..e0b8f28f0 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/updateDocument.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateDocument.js @@ -23,6 +23,7 @@ export default async function updateDocument(request, response) { const document = new Parse.Query('contracts_Document'); document.equalTo('objectId', request.params.document_id); document.equalTo('CreatedBy', userPtr); + document.include('ExtUserPtr.TenantId'); const res = await document.first({ useMasterKey: true }); if (res) { const isArchive = res.get('IsArchive'); diff --git a/apps/OpenSignServer/cloud/customRoute/v1/routes/updateFolder.js b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateFolder.js index be1c5af7c..6038fe130 100644 --- a/apps/OpenSignServer/cloud/customRoute/v1/routes/updateFolder.js +++ b/apps/OpenSignServer/cloud/customRoute/v1/routes/updateFolder.js @@ -25,7 +25,7 @@ export default async function updateFolder(request, response) { folderCls.equalTo('objectId', folderId); folderCls.equalTo('Type', 'Folder'); folderCls.notEqualTo('IsArchive', true); - + folderCls.include('ExtUserPtr.TenantId'); const res = await folderCls.first({ useMasterKey: true }); if (res) { const updateFolder = new Parse.Object('contracts_Document'); diff --git a/apps/OpenSignServer/cloud/parsefunction/DocumentAftersave.js b/apps/OpenSignServer/cloud/parsefunction/DocumentAftersave.js index 1f5ae1b81..77e10d77f 100644 --- a/apps/OpenSignServer/cloud/parsefunction/DocumentAftersave.js +++ b/apps/OpenSignServer/cloud/parsefunction/DocumentAftersave.js @@ -12,6 +12,7 @@ async function DocumentAftersave(request) { const ExpiryDate = new Date(createdAt); ExpiryDate.setDate(ExpiryDate.getDate() + TimeToCompleteDays); const documentQuery = new Parse.Query('contracts_Document'); + documentQuery.include('ExtUserPtr.TenantId'); const updateQuery = await documentQuery.get(request.object.id, { useMasterKey: true }); updateQuery.set('ExpiryDate', ExpiryDate); if (!originIp) { @@ -30,6 +31,7 @@ async function DocumentAftersave(request) { const ExpiryDate = new Date(createdAt); ExpiryDate.setDate(ExpiryDate.getDate() + TimeToCompleteDays); const documentQuery = new Parse.Query('contracts_Document'); + documentQuery.include('ExtUserPtr.TenantId'); const updateQuery = await documentQuery.get(request.object.id, { useMasterKey: true }); updateQuery.set('ExpiryDate', ExpiryDate); if (!originIp) { @@ -76,6 +78,7 @@ async function DocumentAftersave(request) { // console.log(objId) const Query = new Parse.Query('contracts_Document'); Query.include('Signers'); + Query.include('ExtUserPtr.TenantId'); Query.include('CreatedBy'); const updateACL = await Query.get(objId, { useMasterKey: true }); const res = JSON.parse(JSON.stringify(updateACL)); @@ -116,6 +119,7 @@ async function DocumentAftersave(request) { // console.log(objId) const Query = new Parse.Query('contracts_Document'); Query.include('CreatedBy'); + Query.include('ExtUserPtr.TenantId'); const updateACL = await Query.get(objId, { useMasterKey: true }); const res = JSON.parse(JSON.stringify(updateACL)); // console.log("res"); diff --git a/apps/OpenSignServer/cloud/parsefunction/PublicUserLinkContactToDoc.js b/apps/OpenSignServer/cloud/parsefunction/PublicUserLinkContactToDoc.js index b379ffe33..6ac465c64 100644 --- a/apps/OpenSignServer/cloud/parsefunction/PublicUserLinkContactToDoc.js +++ b/apps/OpenSignServer/cloud/parsefunction/PublicUserLinkContactToDoc.js @@ -99,7 +99,7 @@ const sendMailToAllSigners = async docId => { try { //get document details that recenlty created from public template const docQuery = new Parse.Query('contracts_Document'); - docQuery.include('ExtUserPtr'); + docQuery.include('ExtUserPtr,ExtUserPtr.TenantId'); docQuery.include('Signers'); const docRes = await docQuery.get(docId, { useMasterKey: true }); const Doc = JSON.parse(JSON.stringify(docRes)); diff --git a/apps/OpenSignServer/cloud/parsefunction/SendMailOTPv1.js b/apps/OpenSignServer/cloud/parsefunction/SendMailOTPv1.js index 3de9b0c2d..b7064b913 100644 --- a/apps/OpenSignServer/cloud/parsefunction/SendMailOTPv1.js +++ b/apps/OpenSignServer/cloud/parsefunction/SendMailOTPv1.js @@ -7,6 +7,7 @@ async function getDocument(docId) { query.include('CreatedBy'); query.include('Signers'); query.include('AuditTrail.UserPtr'); + query.include('ExtUserPtr.TenantId'); query.include('Placeholders'); query.notEqualTo('IsArchive', true); const res = await query.first({ useMasterKey: true }); diff --git a/apps/OpenSignServer/cloud/parsefunction/callWebhook.js b/apps/OpenSignServer/cloud/parsefunction/callWebhook.js index 59a1607a7..e888beb9a 100644 --- a/apps/OpenSignServer/cloud/parsefunction/callWebhook.js +++ b/apps/OpenSignServer/cloud/parsefunction/callWebhook.js @@ -9,6 +9,7 @@ export default async function callWebhook(request) { const appId = process.env.APP_ID; try { const docQuery = new Parse.Query('contracts_Document'); + docQuery.include('ExtUserPtr.TenantId'); const docRes = await docQuery.get(docId, { useMasterKey: true }); const isEnableOTP = docRes?.get('IsEnableOTP') || false; let userId; diff --git a/apps/OpenSignServer/cloud/parsefunction/declinedocument.js b/apps/OpenSignServer/cloud/parsefunction/declinedocument.js index 07c2a90fd..553abef35 100644 --- a/apps/OpenSignServer/cloud/parsefunction/declinedocument.js +++ b/apps/OpenSignServer/cloud/parsefunction/declinedocument.js @@ -9,6 +9,7 @@ export default async function declinedocument(request) { try { const docCls = new Parse.Query('contracts_Document'); + docCls.include('ExtUserPtr.TenantId'); const updateDoc = await docCls.get(docId, { useMasterKey: true }); if (updateDoc) { const isEnableOTP = updateDoc?.get('IsEnableOTP') || false; diff --git a/apps/OpenSignServer/cloud/parsefunction/getDrive.js b/apps/OpenSignServer/cloud/parsefunction/getDrive.js index 35306008e..6d2760dfa 100644 --- a/apps/OpenSignServer/cloud/parsefunction/getDrive.js +++ b/apps/OpenSignServer/cloud/parsefunction/getDrive.js @@ -18,9 +18,9 @@ export default async function getDrive(request) { if (userId) { let url; if (docId) { - url = `${classUrl}?where={"Folder":{"__type":"Pointer","className":"contracts_Document","objectId":"${docId}"},"CreatedBy":{"__type":"Pointer","className":"_User","objectId":"${userId}"},"IsArchive":{"$ne":true}}&include=ExtUserPtr,Signers,Folder&order=-updatedAt&skip=${skip}&limit=${limit}`; + url = `${classUrl}?where={"Folder":{"__type":"Pointer","className":"contracts_Document","objectId":"${docId}"},"CreatedBy":{"__type":"Pointer","className":"_User","objectId":"${userId}"},"IsArchive":{"$ne":true}}&include=ExtUserPtr,ExtUserPtr.TenantId,Signers,Folder&order=-updatedAt&skip=${skip}&limit=${limit}`; } else { - url = `${classUrl}?where={"Folder":{"$exists":false},"CreatedBy":{"__type":"Pointer","className":"_User","objectId":"${userId}"},"IsArchive":{"$ne":true}}&include=ExtUserPtr,Signers&order=-updatedAt&skip=${skip}&limit=${limit}`; + url = `${classUrl}?where={"Folder":{"$exists":false},"CreatedBy":{"__type":"Pointer","className":"_User","objectId":"${userId}"},"IsArchive":{"$ne":true}}&include=ExtUserPtr,ExtUserPtr.TenantId,Signers&order=-updatedAt&skip=${skip}&limit=${limit}`; } try { const res = await axios.get(url, { diff --git a/apps/OpenSignServer/cloud/parsefunction/getReport.js b/apps/OpenSignServer/cloud/parsefunction/getReport.js index 12b352644..b3c7894af 100644 --- a/apps/OpenSignServer/cloud/parsefunction/getReport.js +++ b/apps/OpenSignServer/cloud/parsefunction/getReport.js @@ -52,11 +52,7 @@ export default async function getReport(request) { } else { strParams = JSON.stringify({ ...params, - CreatedBy: { - __type: 'Pointer', - className: '_User', - objectId: userId, - }, + CreatedBy: { __type: 'Pointer', className: '_User', objectId: userId }, }); } } @@ -66,7 +62,7 @@ export default async function getReport(request) { 'X-Parse-Application-Id': appId, 'X-Parse-Master-Key': masterKey, }; - const url = `${serverUrl}/classes/${clsName}?where=${strParams}&keys=${strKeys}&order=${orderBy}&skip=${skip}&limit=${limit}&include=AuditTrail.UserPtr,Placeholders.signerPtr`; + const url = `${serverUrl}/classes/${clsName}?where=${strParams}&keys=${strKeys}&order=${orderBy}&skip=${skip}&limit=${limit}&include=AuditTrail.UserPtr,Placeholders.signerPtr,ExtUserPtr.TenantId`; const res = await axios.get(url, { headers: headers }); if (res.data && res.data.results) { return res.data.results; diff --git a/apps/OpenSignServer/cloud/parsefunction/linkContactToDoc.js b/apps/OpenSignServer/cloud/parsefunction/linkContactToDoc.js index ba2c5a44b..3220a5c7b 100644 --- a/apps/OpenSignServer/cloud/parsefunction/linkContactToDoc.js +++ b/apps/OpenSignServer/cloud/parsefunction/linkContactToDoc.js @@ -54,7 +54,7 @@ export default async function linkContactToDoc(req) { if (docId) { // Execute the query to get the document with the specified 'docId' const docQuery = new Parse.Query('contracts_Document'); - docQuery.include('ExtUserPtr'); + docQuery.include('ExtUserPtr,ExtUserPtr.TenantId'); const docRes = await docQuery.get(docId, { useMasterKey: true }); // Check if the document was found; if not, throw an error indicating the document was not found if (!docRes) { diff --git a/apps/OpenSignServer/cloud/parsefunction/pdf/PDF.js b/apps/OpenSignServer/cloud/parsefunction/pdf/PDF.js index 9e2fcd47c..e5dfbb651 100644 --- a/apps/OpenSignServer/cloud/parsefunction/pdf/PDF.js +++ b/apps/OpenSignServer/cloud/parsefunction/pdf/PDF.js @@ -102,7 +102,8 @@ async function sendCompletedMail(obj) { const sender = obj.doc.ExtUserPtr; const pdfName = doc.Name; const mailLogo = 'https://qikinnovation.ams3.digitaloceanspaces.com/logo.png'; - const recipient = sender.Email; + const recipient = + doc?.Signers?.length > 0 ? doc?.Signers?.map(x => x?.Email)?.join(',') : sender.Email; let subject = `Document "${pdfName}" has been signed by all parties`; let body = "