Compare commits

...
Author SHA1 Message Date
AmolandGitHub 7ef22eb220 Update uploadFiletoS3.js 2024-12-04 21:47:28 +05:30
AmolandGitHub 2237358d8a Update getSignedUrl.js 2024-12-04 21:46:32 +05:30
AmolandGitHub 0275762e20 Merge pull request #1492 from OpenSignLabs/fix_uncaught 2024-11-28 18:32:56 +05:30
prafull-opensignlabs 618b4fa2fb fix: handle uncaught server error 2024-11-28 18:20:48 +05:30
AndrewandGitHub 37b41fca93 Merge pull request #1491 from OpenSignLabs/prafull-opensignlabs-patch-3 2024-11-28 16:07:53 +05:30
prafull-opensignlabsandGitHub 470ed8970a fix: get owner subscription is expired in guest login flow 2024-11-28 16:02:39 +05:30
AmolandGitHub bb80324c35 Update CONTRIBUTING.md 2024-11-22 11:08:08 +05:30
AmolandGitHub a460b62233 Create LICENSE 2024-11-21 18:37:36 +05:30
AmolandGitHub 412901b839 Update LICENSE 2024-11-21 18:36:46 +05:30
prafull-opensignlabsandGitHub 9b322913f6 Merge pull request #1475 from OpenSignLabs/raktima-main-patch-1
fix: resolved text widget data embedding issue after sending the document
2024-11-20 16:30:36 +05:30
RaktimaandGitHub 248bb71ceb Update PlaceHolderSign.js 2024-11-20 16:13:53 +05:30
RaktimaNXG f62b241270 fix: resolved text widget data embedding issue after sending the document 2024-11-20 13:38:25 +05:30
prafull-opensignlabsandGitHub d95da53757 Merge pull request #1457 from OpenSignLabs/staging
fix: otp auth must be disable in certificate if OTP verification is off
2024-11-13 18:46:48 +05:30
prafull-opensignlabsandGitHub 277cc34e65 Merge pull request #1455 from OpenSignLabs/staging
fix: incompatible pdf error while signing pdf
2024-11-13 14:18:50 +05:30
prafull-opensignlabsandGitHub 1ca33c0b76 Merge pull request #1453 from OpenSignLabs/staging
fix: server get crash in self-hosting
2024-11-13 10:11:42 +05:30
AndrewandGitHub d8131a6199 Merge pull request #1450 from OpenSignLabs/staging 2024-11-12 17:11:09 +05:30
8 changed files with 97 additions and 30 deletions
+2 -2
View File
@@ -77,6 +77,6 @@ Engage with the community on our [Gitter Channel](https://gitter.im/OpenSignLabs
## License
By contributing, you agree that your contributions will be licensed under its [MIT License](LICENSE).
By contributing, you agree that your contributions will be licensed under its [AGPL-V3 License](LICENSE).
---
---
+6 -1
View File
@@ -1,4 +1,9 @@
GNU AFFERO GENERAL PUBLIC LICENSE
* All content that resides under the "apps/OpenSignServer/cloud/customRoute" directory of this repository, if that directory exists, is licensed under the license defined in "apps/OpenSignServer/cloud/customRoute".
* All third party components incorporated into the OpenSign Software are licensed under the original license provided by the owner of the applicable component.
* Content outside of the above mentioned directories or restrictions above is available under the "GNU AFFERO GENERAL PUBLIC LICENSE" as defined below -
GNU AFFERO GENERAL PUBLIC LICENSE
Version 3, 19 November 2007
Copyright (C) 2007 Free Software Foundation, Inc. <https://fsf.org/>
+3 -3
View File
@@ -531,9 +531,9 @@ function PdfRequestFiles(props) {
const obj = documentData?.[0];
setSendInOrder(obj?.SendinOrder || false);
if (
obj &&
obj?.Signers?.length > 0 &&
obj?.Placeholders?.length > 0
obj?.Signers?.length &&
obj?.Placeholders?.length &&
currUserId !== "undefined"
) {
const params = {
event: "viewed",
+39 -22
View File
@@ -580,22 +580,33 @@ function PlaceHolderSign() {
}
setSignerPos(updatesignerPos);
} else {
let updatesignerPos;
//if condition when widget type is prefill label text widget
if (dragTypeValue === textWidget) {
const prefileTextWidget = {
signerPtr: {},
signerObjId: "",
blockColor: "#f58f8c",
placeHolder: [placeHolder],
Role: "prefill",
Id: key
};
signerPos.push(prefileTextWidget);
setSignerPos(signerPos);
//check text widgets data (prefill) already exist then and want to add text widget on new page
//create new page entry with old data and update placeholder
if (filterSignerPos) {
const addPrefillData =
filterSignerPos && filterSignerPos?.placeHolder;
addPrefillData.push(placeHolder);
const updatePrefillPos = signerPos.map((x) =>
x.Role === "prefill" ? { ...x, placeHolder: addPrefillData } : x
);
setSignerPos(updatePrefillPos);
} //else condition if user do not have any text widget data
else {
const prefillTextWidget = {
signerPtr: {},
signerObjId: "",
blockColor: "#f58f8c",
placeHolder: [placeHolder],
Role: "prefill",
Id: key
};
setSignerPos((prev)=>[...prev,prefillTextWidget]);
}
} else {
//else condition to add placeholder widgets on multiple page first time
updatesignerPos = signerPos.map((x) =>
const updatesignerPos = signerPos.map((x) =>
x.Id === uniqueId && x?.placeHolder
? { ...x, placeHolder: [...x.placeHolder, placeHolder] }
: x.Id === uniqueId
@@ -770,15 +781,17 @@ function PlaceHolderSign() {
signerupdate.push(newUpdatePos[0]);
setSignerPos(signerupdate);
} else {
const updatedData = signerPos.map((item) => {
if (item.Id === Id) {
// Create a copy of the item object and delete the placeHolder field
const updatedItem = { ...item };
delete updatedItem.placeHolder;
return updatedItem;
}
return item;
});
const updatedData = signerPos
.filter((item) => !(item.Id === Id && item.Role === "prefill")) // Remove prefill object
.map((item) => {
if (item.Id === Id && item.Role !== "prefill") {
// Create a copy of the item object and delete the placeHolder field
const updatedItem = { ...item };
delete updatedItem.placeHolder;
return updatedItem;
}
return item;
});
setSignerPos(updatedData);
}
}
@@ -1586,7 +1599,11 @@ function PlaceHolderSign() {
}
};
const handleRecipientSign = () => {
navigate(`/recipientSignPdf/${documentId}/${currentId}`);
if (currentId) {
navigate(`/recipientSignPdf/${documentId}/${currentId}`);
} else {
navigate(`/recipientSignPdf/${documentId}`);
}
};
const handleLinkUser = (id) => {
setIsAddUser({ [id]: true });
@@ -0,0 +1,35 @@
The OpenSign Enterprise license (the “Enterprise License”)
Copyright (c) 2020-2024 Qik Innovations Private Limited.
With regard to the OpenSign Software:
This software and associated documentation files (the "Software") may only be
used in production, if you (and any entity that you represent) have agreed to,
and are in compliance with, the OpenSign Subscription Terms of Service(the “Enterprise Terms”), or other
agreement governing the use of the Software, as agreed by you and OpenSign,
and otherwise have a valid OpenSign Enterprise license for the
correct number of user seats. Subject to the foregoing sentence, you are free to
modify this Software and publish patches to the Software. You agree that OpenSign
and/or its licensors (as applicable) retain all right, title and interest in and
to all such modifications and/or patches, and all such modifications and/or
patches may only be used, copied, modified, displayed, distributed, or otherwise
exploited with a valid OpenSign Enterprise license for the correct
number of user seats. Notwithstanding the foregoing, you may copy and modify
the Software for development and testing purposes, without requiring a
subscription. You agree that OpenSign and/or its licensors (as applicable) retain
all right, title and interest in and to all such modifications. You are not
granted any other rights beyond what is expressly stated herein. Subject to the
foregoing, it is forbidden to copy, merge, publish, distribute, sublicense,
and/or sell the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
For all third party components incorporated into the OpenSign Software, those
components are licensed under the original license provided by the owner of the
applicable component.
@@ -8,7 +8,7 @@ export default function getPresignedUrl(url, adapter) {
AWS.config.update({ credentials: credentials, region: adapter?.region || process.env.DO_REGION });
const spacesEndpoint = adapter?.endpoint || new AWS.Endpoint(process.env.DO_ENDPOINT);
const s3 = new AWS.S3({ endpoint: spacesEndpoint });
const s3 = new AWS.S3({ endpoint: spacesEndpoint, signatureVersion: "v4" });
// Create a new URL object
const parsedUrl = new URL(url);
@@ -95,13 +95,22 @@ export default async function getSubscription(request) {
} else if (contactId) {
try {
const contactCls = new Parse.Query('contracts_Contactbook');
contactCls.include('CreatedBy');
const contactUser = await contactCls.get(contactId, { useMasterKey: true });
if (contactUser) {
const _contractUser = JSON.parse(JSON.stringify(contactUser));
let TenantId = _contractUser?.TenantId?.objectId || '';
if (!TenantId) {
const extUserCls = new Parse.Query('contracts_Users');
extUserCls.equalTo('Email', _contractUser.CreatedBy.email);
const contactUser = await extUserCls.first({ useMasterKey: true });
TenantId = contactUser?.get('TenantId')?.id || '';
}
const subscriptionCls = new Parse.Query('contracts_Subscriptions');
subscriptionCls.equalTo('TenantId', {
__type: 'Pointer',
className: 'partners_Tenant',
objectId: contactUser.get('TenantId').id,
objectId: TenantId,
});
subscriptionCls.descending('createdAt');
const subcripitions = await subscriptionCls.first({ useMasterKey: true });
@@ -14,6 +14,7 @@ async function uploadFileToS3(buffer, fileName, mimeType, adapter) {
client = new S3Client({
region: adapter?.region,
credentials: { accessKeyId: adapter?.accessKeyId, secretAccessKey: adapter?.secretAccessKey },
signatureVersion: "v4"
});
}
const prefixId = crypto.randomBytes(16).toString('hex');