diff --git a/workflow/engine/src/BusinessModel/FilesManager.php b/workflow/engine/src/BusinessModel/FilesManager.php index 53d74a198..f6fa3c22b 100644 --- a/workflow/engine/src/BusinessModel/FilesManager.php +++ b/workflow/engine/src/BusinessModel/FilesManager.php @@ -82,17 +82,25 @@ class FilesManager } foreach ($aFiles as $aFile) { $arrayFileUid = $this->getFileManagerUid($sDirectory.$aFile['FILE']); + $fcontent = file_get_contents($sDirectory.$aFile['FILE']); $fileUid = $arrayFileUid["PRF_UID"]; if ($fileUid) { $oProcessFiles = \ProcessFilesPeer::retrieveByPK($fileUid); + $editable = $oProcessFiles->getPrfEditable(); + if ($editable == 1){ + $editable = 'true'; + } else { + $editable = 'false'; + } $aTheFiles[] = array( 'prf_filename' => $aFile['FILE'], 'usr_uid' => $oProcessFiles->getUsrUid(), 'prf_update_usr_uid' => $oProcessFiles->getPrfUpdateUsrUid(), 'prf_path' => $sMainDirectory. PATH_SEP .$sSubDirectory, 'prf_type' => $oProcessFiles->getPrfType(), - 'prf_editable' => $oProcessFiles->getPrfEditable(), + 'prf_editable' => $editable, 'prf_create_date' => $oProcessFiles->getPrfCreateDate(), - 'prf_update_date' => $oProcessFiles->getPrfUpdateDate()); + 'prf_update_date' => $oProcessFiles->getPrfUpdateDate(), + 'prf_content' => $fcontent); } else { $aTheFiles[] = array('prf_filename' => $aFile['FILE'], @@ -100,9 +108,10 @@ class FilesManager 'prf_update_usr_uid' => '', 'prf_path' => $sMainDirectory. PATH_SEP .$sSubDirectory, 'prf_type' => 'file', - 'prf_editable' => '', + 'prf_editable' => $editable, 'prf_create_date' => '', - 'prf_update_date' => ''); + 'prf_update_date' => '', + 'prf_content' => $fcontent); } } @@ -127,6 +136,9 @@ class FilesManager { try { $aData['prf_path'] = rtrim($aData['prf_path'], '/') . '/'; + if (!$aData['prf_filename']){ + throw (new \Exception( 'invalid value specified for `prf_filename`.')); + } $sMainDirectory = current(explode("/", $aData['prf_path'])); if ($sMainDirectory != 'public' && $sMainDirectory != 'templates') { throw (new \Exception( 'invalid value specified for `prf_path`. Expecting `templates/` or `public/`')); @@ -184,7 +196,8 @@ class FilesManager 'prf_type' => $oProcessFiles->getPrfType(), 'prf_editable' => $oProcessFiles->getPrfEditable(), 'prf_create_date' => $oProcessFiles->getPrfCreateDate(), - 'prf_update_date' => $oProcessFiles->getPrfUpdateDate()); + 'prf_update_date' => $oProcessFiles->getPrfUpdateDate(), + 'prf_content' => $content); return $oProcessFile; } catch (Exception $e) { throw $e; @@ -195,15 +208,14 @@ class FilesManager * Return the Process Files Manager * * @param string $prjUid {@min 32} {@max 32} - * @param array $aData + * @param string $prfUid {@min 32} {@max 32} * * * @access public */ - public function uploadProcessFilesManager($prjUid, $aData) + public function uploadProcessFilesManager($prjUid, $prfUid) { try { - $prfUid = $aData['prf_uid']; $path = ''; $criteria = new \Criteria("workflow"); $criteria->addSelectColumn(\ProcessFilesPeer::PRF_PATH); @@ -220,10 +232,14 @@ class FilesManager } $file = end(explode("/",$path)); $path = str_replace($file,'',$path); - if ($_FILES['my_file']['error'] != 1) { - if ($_FILES['my_file']['tmp_name'] != '') { - \G::uploadFile($_FILES['my_file']['tmp_name'],$path , $_FILES['my_file']['name']); - } + if ($file == $_FILES['prf_file']['name']) { + if ($_FILES['prf_file']['error'] != 1) { + if ($_FILES['prf_file']['tmp_name'] != '') { + \G::uploadFile($_FILES['prf_file']['tmp_name'],$path , $_FILES['prf_file']['name']); + } + } + } else { + throw new \Exception(\G::LoadTranslation('ID_PMTABLE_UPLOADING_FILE_PROBLEM')); } } catch (Exception $e) { throw $e; diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php b/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php index 1ea3d6109..ce9e674ea 100644 --- a/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php +++ b/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php @@ -46,7 +46,6 @@ class FilesManager extends Api try { $userUid = $this->getUserId(); $request_data = (array)($request_data); - $filesManager = new \BusinessModel\FilesManager(); $arrayData = $filesManager->addProcessFilesManager($prjUid, $userUid, $request_data); //Response @@ -60,15 +59,15 @@ class FilesManager extends Api /** * @param string $prjUid {@min 32} {@max 32} - * @param array $request_data + * @param string $prfUid {@min 32} {@max 32} * - * @url POST /:prjUid/file-manager/upload + * @url POST /:prjUid/file-manager/:prfUid/upload */ - public function doPostProcessFilesManagerUpload($prjUid, $request_data) + public function doPostProcessFilesManagerUpload($prjUid, $prfUid) { try { $filesManager = new \BusinessModel\FilesManager(); - $filesManager->uploadProcessFilesManager($prjUid, $request_data); + $filesManager->uploadProcessFilesManager($prjUid, $prfUid); } catch (\Exception $e) { //response throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); @@ -145,9 +144,6 @@ class ProcessFilesManagerStructure */ public $prf_path; - /** - * @var string {@from body} - */ public $prf_content; }