mirror of
https://github.com/documenso/documenso.git
synced 2025-11-13 08:13:56 +10:00
feat: support leading cert from custom path
This commit is contained in:
@ -16,6 +16,9 @@ NEXT_PUBLIC_WEBAPP_URL='http://localhost:3000'
|
|||||||
NEXTAUTH_SECRET='lorem ipsum sit dolor random string for encryption this could literally be anything'
|
NEXTAUTH_SECRET='lorem ipsum sit dolor random string for encryption this could literally be anything'
|
||||||
NEXTAUTH_URL='http://localhost:3000'
|
NEXTAUTH_URL='http://localhost:3000'
|
||||||
|
|
||||||
|
# SIGNING
|
||||||
|
CERT_FILE_PATH=
|
||||||
|
|
||||||
# MAIL (NODEMAILER)
|
# MAIL (NODEMAILER)
|
||||||
# SENDGRID
|
# SENDGRID
|
||||||
# Get a Sendgrid Api key here: https://signup.sendgrid.com
|
# Get a Sendgrid Api key here: https://signup.sendgrid.com
|
||||||
|
|||||||
12
.vscode/settings.json
vendored
12
.vscode/settings.json
vendored
@ -13,7 +13,13 @@
|
|||||||
"editor.codeActionsOnSave": {
|
"editor.codeActionsOnSave": {
|
||||||
"source.removeUnusedImports": false
|
"source.removeUnusedImports": false
|
||||||
},
|
},
|
||||||
"typescript.tsdk": "node_modules\\typescript\\lib",
|
"typescript.tsdk": "node_modules/typescript/lib",
|
||||||
"spellright.language": ["de"],
|
"spellright.language": [
|
||||||
"spellright.documentTypes": ["markdown", "latex", "plaintext"]
|
"de"
|
||||||
|
],
|
||||||
|
"spellright.documentTypes": [
|
||||||
|
"markdown",
|
||||||
|
"latex",
|
||||||
|
"plaintext"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@ -59,7 +59,7 @@ export async function getServerSideProps(context: any) {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const recipient = await prisma.recipient.findFirstOrThrow({
|
const recipient = await prisma.recipient.findFirst({
|
||||||
where: {
|
where: {
|
||||||
token: recipientToken,
|
token: recipientToken,
|
||||||
},
|
},
|
||||||
@ -68,6 +68,15 @@ export async function getServerSideProps(context: any) {
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (!recipient) {
|
||||||
|
return {
|
||||||
|
redirect: {
|
||||||
|
permanent: false,
|
||||||
|
destination: "/404",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
// Document is already signed
|
// Document is already signed
|
||||||
if (recipient.Document.status === DocumentStatus.COMPLETED) {
|
if (recipient.Document.status === DocumentStatus.COMPLETED) {
|
||||||
return {
|
return {
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
import { PDFDocument, PDFHexString, PDFName, PDFNumber, PDFString } from "pdf-lib";
|
import { PDFAcroSignature, PDFDocument, PDFHexString, PDFName, PDFNumber, PDFSignature, PDFString } from "pdf-lib";
|
||||||
|
|
||||||
|
|
||||||
const fs = require("fs");
|
const fs = require("fs");
|
||||||
// Local copy of Node SignPDF because https://github.com/vbuch/node-signpdf/pull/187 was not published in NPM yet. Can be switched to npm packge.
|
// Local copy of Node SignPDF because https://github.com/vbuch/node-signpdf/pull/187 was not published in NPM yet. Can be switched to npm packge.
|
||||||
@ -8,8 +9,8 @@ export const addDigitalSignature = async (documentAsBase64: string): Promise<str
|
|||||||
// Custom code to add Byterange to PDF
|
// Custom code to add Byterange to PDF
|
||||||
const PDFArrayCustom = require("./PDFArrayCustom");
|
const PDFArrayCustom = require("./PDFArrayCustom");
|
||||||
const pdfBuffer = Buffer.from(documentAsBase64, "base64");
|
const pdfBuffer = Buffer.from(documentAsBase64, "base64");
|
||||||
const p12Buffer = fs.readFileSync("ressources/certificate.p12");
|
const p12Buffer = fs.readFileSync(process.env.CERT_FILE_PATH || "ressources/cert.p12");
|
||||||
const SIGNATURE_LENGTH = 4540;
|
const SIGNATURE_LENGTH = 12000;
|
||||||
|
|
||||||
const pdfDoc = await PDFDocument.load(pdfBuffer);
|
const pdfDoc = await PDFDocument.load(pdfBuffer);
|
||||||
const pages = pdfDoc.getPages();
|
const pages = pdfDoc.getPages();
|
||||||
|
|||||||
Reference in New Issue
Block a user