From 213215bffa17f3d4ef4bedd8bf195ae791088358 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Wed, 23 Mar 2022 13:31:35 +0000 Subject: [PATCH] Allow same certificate with multiple projects (same domain) --- app/workers/certificates.php | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/workers/certificates.php b/app/workers/certificates.php index 9f9ce33dbd..b9f8ec26a0 100644 --- a/app/workers/certificates.php +++ b/app/workers/certificates.php @@ -98,6 +98,23 @@ class CertificatesV1 extends Worker && isset($certificate['issueDate']) && (($certificate['issueDate'] + ($expiry)) > \time()) ) { // Check last issue time + + // Update document anyway, if needed + // This occurs when a cert is already generated because a different project is using the domain + // By updating here we ensure all domains has certificateId assigned (share same certificate document) + if(!isset($document['certificateId'])) { + $certificate = new Document(\array_merge($document, [ + 'updated' => \time(), + 'certificateId' => $certificate->getId(), + ])); + + $certificate = $dbForConsole->updateDocument('domains', $certificate->getId(), $certificate); + + if(!$certificate) { + throw new Exception('Failed saving domain to DB'); + } + } + throw new Exception('Renew isn\'t required'); }