From b571397982606c3914b05159ed48cae75cca8eba Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Thu, 11 Apr 2019 14:58:52 +0100 Subject: [PATCH] FEAT #9734 electronic signature --- config/config.xml.default | 11 +++++++ config/log4php.default.xml | 33 ------------------- package.json | 4 +-- .../controllers/DocumentController.php | 19 +++++++++++ 4 files changed, 32 insertions(+), 35 deletions(-) delete mode 100755 config/log4php.default.xml diff --git a/config/config.xml.default b/config/config.xml.default index 881c10aa50..771d3ba224 100755 --- a/config/config.xml.default +++ b/config/config.xml.default @@ -13,4 +13,15 @@ <user>maarch</user> <password>maarch</password> </database> + <electronicSignature> + <enable>false</enable> + <certPath>/home/maarch/Bureau/tcpdf.crt</certPath> + <password>password</password> + <certInfo> + <name>Maarch</name> + <location>Paris</location> + <reason>Signature Maarch Parapheur</reason> + <contactInfo>Maarch SAS, société du groupe Archiveco</contactInfo> + </certInfo> + </electronicSignature> </ROOT> diff --git a/config/log4php.default.xml b/config/log4php.default.xml deleted file mode 100755 index 772a18d34e..0000000000 --- a/config/log4php.default.xml +++ /dev/null @@ -1,33 +0,0 @@ -<log4php:configuration xmlns:log4php="http://logging.apache.org/log4php/" - threshold="all" debug="false"> - <appender name="appenderFonctionnel" class="LoggerAppenderRollingFile"> - <layout class="LoggerLayoutTTCC" /> - <param name="file" value="./fonctionnel.log" /> - <param name="maxFileSize" value="10MB" /> - <param name="maxBackupIndex" value="10" /> - <layout class="LoggerLayoutPattern"> - <param name="ConversionPattern" value="[%d{d/m/Y H:i:s}] %-5p [%t] %m%n" /> - </layout> - </appender> - <appender name="appenderTechnique" class="LoggerAppenderRollingFile"> - <layout class="LoggerLayoutTTCC" /> - <param name="file" value="./technique.log" /> - <param name="maxFileSize" value="10MB" /> - <param name="maxBackupIndex" value="10" /> - <layout class="LoggerLayoutPattern"> - <param name="ConversionPattern" value="[%d{d/m/Y H:i:s}] %-5p [%t] %m%n" /> - </layout> - </appender> - <root> - <level value="ERROR" /> - <appender_ref ref="fonctionnel,technique" /> - </root> - <logger name="loggerFonctionnel" additivity="true"> - <level value="ERROR" /> - <appender_ref ref="appenderFonctionnel" /> - </logger> - <logger name="loggerTechnique" additivity="true"> - <level value="ERROR" /> - <appender_ref ref="appenderTechnique" /> - </logger> -</log4php:configuration> diff --git a/package.json b/package.json index 7bf7f138cd..cc4524b83f 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "exif-js": "^2.3.0", "hammerjs": "^2.0.8", "interactjs": "^1.4.0-rc.9", - "jquery": "^3.3.1", + "jquery": "^3.4.0", "ng2-pdf-viewer": "^5.2.4", "ngx-cookie-service": "^2.1.0", "ngx-scroll-event": "^1.0.8", @@ -56,7 +56,7 @@ "@types/jasmine": "^3.3.12", "@types/jasminewd2": "^2.0.6", "@types/jquery": "^3.3.29", - "@types/node": "^11.13.2", + "@types/node": "^11.13.4", "codelyzer": "~5.0.0", "jasmine-core": "~3.4.0", "jasmine-spec-reporter": "~4.2.1", diff --git a/src/app/document/controllers/DocumentController.php b/src/app/document/controllers/DocumentController.php index 33a7d6ec9e..15dda0e508 100755 --- a/src/app/document/controllers/DocumentController.php +++ b/src/app/document/controllers/DocumentController.php @@ -375,6 +375,25 @@ class DocumentController } } } + + $loadedXml = CoreConfigModel::getConfig(); + + if ($loadedXml->electronicSignature->enable == 'true') { + $certPath = realpath((string)$loadedXml->electronicSignature->certPath); + if (is_file($certPath)) { + $certificate = 'file://' . $certPath; + $info = [ + 'Name' => (string)$loadedXml->electronicSignature->certInfo->name, + 'Location' => (string)$loadedXml->electronicSignature->certInfo->location, + 'Reason' => (string)$loadedXml->electronicSignature->certInfo->reason, + 'ContactInfo' => (string)$loadedXml->electronicSignature->certInfo->contactInfo + ]; + $pdf->setSignature($certificate, $certificate, (string)$loadedXml->electronicSignature->password, '', 2, $info); + } else { + return $response->withStatus(400)->withJson(['errors' => 'check certPath']); + } + } + $fileContent = $pdf->Output('', 'S'); $storeInfos = DocserverController::storeResourceOnDocServer([ -- GitLab