diff --git a/workflow/engine/src/BusinessModel/FilesManager.php b/workflow/engine/src/BusinessModel/FilesManager.php index 3e1684860..636f01cd1 100644 --- a/workflow/engine/src/BusinessModel/FilesManager.php +++ b/workflow/engine/src/BusinessModel/FilesManager.php @@ -309,5 +309,28 @@ class FilesManager throw $e; } } + + /** + * + * @param string $sProcessUID {@min 32} {@max 32} + * @param string $path + * + * + * @access public + */ + public function downloadProcessFilesManager($sProcessUID, $path) + { + try { + $arrayTaskUid = $this->getFileManagerUid($path); + $sPath = explode("/", $path); + $sfile = end(explode("/",$path)); + $main = implode(array_slice($sPath, -3, 1)); + if (file_exists(PATH_SEP.$path)) { + \G::streamFile($path, true); + } + } catch (Exception $e) { + throw $e; + } + } } diff --git a/workflow/engine/src/BusinessModel/OutputDocument.php b/workflow/engine/src/BusinessModel/OutputDocument.php index bd604f885..d0ea67cec 100644 --- a/workflow/engine/src/BusinessModel/OutputDocument.php +++ b/workflow/engine/src/BusinessModel/OutputDocument.php @@ -260,12 +260,14 @@ class OutputDocument $aData['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'] = ""; $aData['OUT_DOC_PDF_SECURITY_PERMISSIONS'] = ""; } - if (isset( $aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] ) && $aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] != "") { - $aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'] = \G::encrypt( $aData['OUT_DOC_PDF_SECURITY_OPEN_PASSWORD'], $aData['OUT_DOC_UID'] ); - $aData['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'] = \G::encrypt( $aData['OUT_DOC_PDF_SECURITY_OWNER_PASSWORD'], $aData['OUT_DOC_UID'] ); - } } $outDocUid = $oOutputDocument->create($aData); + $aData = array_change_key_case($aData, CASE_LOWER); + if (isset( $aData['out_doc_pdf_security_open_password'] ) && $aData['out_doc_pdf_security_open_password'] != "") { + $aData['out_doc_pdf_security_open_password'] = \G::encrypt( $aData['out_doc_pdf_security_open_password'], $outDocUid ); + $aData['out_doc_pdf_security_owner_password'] = \G::encrypt( $aData['out_doc_pdf_security_owner_password'], $outDocUid ); + } + $this->updateOutputDocument($sProcessUID, $aData, $outDocUid); //Return unset($aData["PRO_UID"]); $aData = array_change_key_case($aData, CASE_LOWER); diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php b/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php index 71ef27c15..21c35fb60 100644 --- a/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php +++ b/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php @@ -125,6 +125,7 @@ class FilesManager extends Api } return $response; } + /** * @param string $prjUid {@min 32} {@max 32} * @param string $path @@ -135,15 +136,30 @@ class FilesManager extends Api { try { $filesManager = new \BusinessModel\FilesManager(); - $arrayData = $filesManager->deleteProcessFilesManager($prjUid, $path); - //Response - $response = $arrayData; + $filesManager->deleteProcessFilesManager($prjUid, $path); } catch (\Exception $e) { //response throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); } return $response; } + + /** + * @param string $prjUid {@min 32} {@max 32} + * @param string $path + * + * @url GET /:prjUid/process-file-manager/download + */ + public function doDownloadProcessFilesManager($prjUid, $path) + { + try { + $filesManager = new \BusinessModel\FilesManager(); + $filesManager->downloadProcessFilesManager($prjUid, $path); + } catch (\Exception $e) { + //response + throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); + } + } } class ProcessFilesManagerStructure