mirror of
https://github.com/OpenSignLabs/OpenSign.git
synced 2026-08-21 07:02:32 +02:00
fix: ip address missing of document originator using public-sign
This commit is contained in:
@@ -1591,6 +1591,17 @@ function PdfRequestFiles(props) {
|
||||
alert("Please Enter OTP!");
|
||||
}
|
||||
};
|
||||
const handleCloseOtp = () => {
|
||||
setIsPublicContact(false);
|
||||
setLoading(false);
|
||||
setIsOtp(false);
|
||||
setOtp();
|
||||
setContact({
|
||||
name: "",
|
||||
email: "",
|
||||
phone: ""
|
||||
});
|
||||
};
|
||||
|
||||
return (
|
||||
<DndProvider backend={HTML5Backend}>
|
||||
@@ -1720,16 +1731,18 @@ function PdfRequestFiles(props) {
|
||||
|
||||
<ModalUi
|
||||
isOpen={isPublicContact}
|
||||
title={"Contact Details"}
|
||||
title={isOtp ? "Verify email" : "Contact Details"}
|
||||
handleClose={() => {
|
||||
setIsPublicContact(false);
|
||||
handleCloseOtp();
|
||||
}}
|
||||
>
|
||||
<div className="h-full p-[20px]">
|
||||
{isOtp ? (
|
||||
<form onSubmit={VerifyOTP}>
|
||||
<div className="flex flex-col gap-2">
|
||||
<span>You will get a OTP via Email</span>
|
||||
<span>
|
||||
You will get a verification code via email
|
||||
</span>
|
||||
<label className="op-input op-input-bordered flex items-center gap-2 ">
|
||||
<input
|
||||
type="number"
|
||||
@@ -1748,16 +1761,7 @@ function PdfRequestFiles(props) {
|
||||
<button
|
||||
className="op-btn op-btn-ghost"
|
||||
onClick={() => {
|
||||
// document.getElementById("my_modal").close();
|
||||
setIsPublicContact(false);
|
||||
setLoading(false);
|
||||
setIsOtp(false);
|
||||
setOtp();
|
||||
setContact({
|
||||
name: "",
|
||||
email: "",
|
||||
phone: ""
|
||||
});
|
||||
handleCloseOtp();
|
||||
}}
|
||||
>
|
||||
Cancel
|
||||
@@ -1841,8 +1845,7 @@ function PdfRequestFiles(props) {
|
||||
<button
|
||||
className="op-btn op-btn-ghost"
|
||||
onClick={() => {
|
||||
// document.getElementById("my_modal").close();
|
||||
setIsPublicContact(false);
|
||||
handleCloseOtp();
|
||||
}}
|
||||
>
|
||||
Close
|
||||
|
||||
@@ -13,7 +13,7 @@ async function DocumentAftersave(request) {
|
||||
const documentQuery = new Parse.Query('contracts_Document');
|
||||
const updateQuery = await documentQuery.get(request.object.id, { useMasterKey: true });
|
||||
updateQuery.set('ExpiryDate', ExpiryDate);
|
||||
updateQuery.set('OriginIp', ip);
|
||||
updateQuery.set('OriginIp', ip || request.object?.get('OriginIp') || '');
|
||||
const AutoReminder = request?.object?.get('AutomaticReminders') || false;
|
||||
if (AutoReminder) {
|
||||
const RemindOnceInEvery = request?.object?.get('RemindOnceInEvery') || 5;
|
||||
|
||||
@@ -61,6 +61,7 @@ const createDocumentFromTemplate = async (template, existContact, index) => {
|
||||
object.set('URL', template?.URL);
|
||||
object.set('CreatedBy', template?.CreatedBy);
|
||||
object.set('ExtUserPtr', template?.ExtUserPtr);
|
||||
object.set('OriginIp', template?.OriginIp || '');
|
||||
let signers = template?.Signers || [];
|
||||
const signerobj = {
|
||||
__type: 'Pointer',
|
||||
|
||||
@@ -5,13 +5,17 @@ export default async function TemplateAfterSave(request) {
|
||||
// update acl of New Document If There are signers present in array
|
||||
const signers = request.object.get('Signers');
|
||||
const AutoReminder = request?.object?.get('AutomaticReminders') || false;
|
||||
const ip = request?.headers?.['x-real-ip'] || '';
|
||||
if (AutoReminder) {
|
||||
const RemindOnceInEvery = request?.object?.get('RemindOnceInEvery') || 5;
|
||||
const ReminderDate = new Date(request?.object?.get('createdAt'));
|
||||
ReminderDate.setDate(ReminderDate.getDate() + RemindOnceInEvery);
|
||||
request.object.set('NextReminderDate', ReminderDate);
|
||||
await request.object.save(null, { useMasterKey: true });
|
||||
request.object.set('OriginIp', ip);
|
||||
} else {
|
||||
request.object.set('OriginIp', ip);
|
||||
}
|
||||
await request.object.save(null, { useMasterKey: true });
|
||||
if (signers && signers.length > 0) {
|
||||
await updateAclDoc(request.object.id);
|
||||
} else {
|
||||
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
/**
|
||||
*
|
||||
* @param {Parse} Parse
|
||||
*/
|
||||
exports.up = async (Parse) => {
|
||||
// TODO: set className here
|
||||
const className = 'contracts_Template';
|
||||
const schema = new Parse.Schema(className);
|
||||
schema.addString('OriginIp');
|
||||
|
||||
// TODO: Set the schema here
|
||||
// Example:
|
||||
// schema.addString('name').addNumber('cash');
|
||||
|
||||
return schema.update();
|
||||
};
|
||||
|
||||
/**
|
||||
*
|
||||
* @param {Parse} Parse
|
||||
*/
|
||||
exports.down = async (Parse) => {
|
||||
// TODO: set className here
|
||||
const className = 'contracts_Template';
|
||||
const schema = new Parse.Schema(className);
|
||||
schema.deleteField('OriginIp');
|
||||
// TODO: Set the schema here
|
||||
// Example:
|
||||
// schema.deleteField('name').deleteField('cash');
|
||||
|
||||
return schema.update();
|
||||
};
|
||||
Reference in New Issue
Block a user