Merged in darojas/processmaker (pull request #230)

Se mejora FILESMANAGER. Se adiciona en el GET el content del documento y se agregan validaciones.
This commit is contained in:
erik ao
2014-02-24 17:07:09 -04:00
2 changed files with 32 additions and 20 deletions

View File

@@ -82,17 +82,25 @@ class FilesManager
} }
foreach ($aFiles as $aFile) { foreach ($aFiles as $aFile) {
$arrayFileUid = $this->getFileManagerUid($sDirectory.$aFile['FILE']); $arrayFileUid = $this->getFileManagerUid($sDirectory.$aFile['FILE']);
$fcontent = file_get_contents($sDirectory.$aFile['FILE']);
$fileUid = $arrayFileUid["PRF_UID"]; $fileUid = $arrayFileUid["PRF_UID"];
if ($fileUid) { if ($fileUid) {
$oProcessFiles = \ProcessFilesPeer::retrieveByPK($fileUid); $oProcessFiles = \ProcessFilesPeer::retrieveByPK($fileUid);
$editable = $oProcessFiles->getPrfEditable();
if ($editable == 1){
$editable = 'true';
} else {
$editable = 'false';
}
$aTheFiles[] = array( 'prf_filename' => $aFile['FILE'], $aTheFiles[] = array( 'prf_filename' => $aFile['FILE'],
'usr_uid' => $oProcessFiles->getUsrUid(), 'usr_uid' => $oProcessFiles->getUsrUid(),
'prf_update_usr_uid' => $oProcessFiles->getPrfUpdateUsrUid(), 'prf_update_usr_uid' => $oProcessFiles->getPrfUpdateUsrUid(),
'prf_path' => $sMainDirectory. PATH_SEP .$sSubDirectory, 'prf_path' => $sMainDirectory. PATH_SEP .$sSubDirectory,
'prf_type' => $oProcessFiles->getPrfType(), 'prf_type' => $oProcessFiles->getPrfType(),
'prf_editable' => $oProcessFiles->getPrfEditable(), 'prf_editable' => $editable,
'prf_create_date' => $oProcessFiles->getPrfCreateDate(), 'prf_create_date' => $oProcessFiles->getPrfCreateDate(),
'prf_update_date' => $oProcessFiles->getPrfUpdateDate()); 'prf_update_date' => $oProcessFiles->getPrfUpdateDate(),
'prf_content' => $fcontent);
} else { } else {
$aTheFiles[] = array('prf_filename' => $aFile['FILE'], $aTheFiles[] = array('prf_filename' => $aFile['FILE'],
@@ -100,9 +108,10 @@ class FilesManager
'prf_update_usr_uid' => '', 'prf_update_usr_uid' => '',
'prf_path' => $sMainDirectory. PATH_SEP .$sSubDirectory, 'prf_path' => $sMainDirectory. PATH_SEP .$sSubDirectory,
'prf_type' => 'file', 'prf_type' => 'file',
'prf_editable' => '', 'prf_editable' => $editable,
'prf_create_date' => '', 'prf_create_date' => '',
'prf_update_date' => ''); 'prf_update_date' => '',
'prf_content' => $fcontent);
} }
} }
@@ -127,6 +136,9 @@ class FilesManager
{ {
try { try {
$aData['prf_path'] = rtrim($aData['prf_path'], '/') . '/'; $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'])); $sMainDirectory = current(explode("/", $aData['prf_path']));
if ($sMainDirectory != 'public' && $sMainDirectory != 'templates') { if ($sMainDirectory != 'public' && $sMainDirectory != 'templates') {
throw (new \Exception( 'invalid value specified for `prf_path`. Expecting `templates/` or `public/`')); throw (new \Exception( 'invalid value specified for `prf_path`. Expecting `templates/` or `public/`'));
@@ -184,7 +196,8 @@ class FilesManager
'prf_type' => $oProcessFiles->getPrfType(), 'prf_type' => $oProcessFiles->getPrfType(),
'prf_editable' => $oProcessFiles->getPrfEditable(), 'prf_editable' => $oProcessFiles->getPrfEditable(),
'prf_create_date' => $oProcessFiles->getPrfCreateDate(), 'prf_create_date' => $oProcessFiles->getPrfCreateDate(),
'prf_update_date' => $oProcessFiles->getPrfUpdateDate()); 'prf_update_date' => $oProcessFiles->getPrfUpdateDate(),
'prf_content' => $content);
return $oProcessFile; return $oProcessFile;
} catch (Exception $e) { } catch (Exception $e) {
throw $e; throw $e;
@@ -195,15 +208,14 @@ class FilesManager
* Return the Process Files Manager * Return the Process Files Manager
* *
* @param string $prjUid {@min 32} {@max 32} * @param string $prjUid {@min 32} {@max 32}
* @param array $aData * @param string $prfUid {@min 32} {@max 32}
* *
* *
* @access public * @access public
*/ */
public function uploadProcessFilesManager($prjUid, $aData) public function uploadProcessFilesManager($prjUid, $prfUid)
{ {
try { try {
$prfUid = $aData['prf_uid'];
$path = ''; $path = '';
$criteria = new \Criteria("workflow"); $criteria = new \Criteria("workflow");
$criteria->addSelectColumn(\ProcessFilesPeer::PRF_PATH); $criteria->addSelectColumn(\ProcessFilesPeer::PRF_PATH);
@@ -220,10 +232,14 @@ class FilesManager
} }
$file = end(explode("/",$path)); $file = end(explode("/",$path));
$path = str_replace($file,'',$path); $path = str_replace($file,'',$path);
if ($_FILES['my_file']['error'] != 1) { if ($file == $_FILES['prf_file']['name']) {
if ($_FILES['my_file']['tmp_name'] != '') { if ($_FILES['prf_file']['error'] != 1) {
\G::uploadFile($_FILES['my_file']['tmp_name'],$path , $_FILES['my_file']['name']); 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) { } catch (Exception $e) {
throw $e; throw $e;

View File

@@ -46,7 +46,6 @@ class FilesManager extends Api
try { try {
$userUid = $this->getUserId(); $userUid = $this->getUserId();
$request_data = (array)($request_data); $request_data = (array)($request_data);
$filesManager = new \BusinessModel\FilesManager(); $filesManager = new \BusinessModel\FilesManager();
$arrayData = $filesManager->addProcessFilesManager($prjUid, $userUid, $request_data); $arrayData = $filesManager->addProcessFilesManager($prjUid, $userUid, $request_data);
//Response //Response
@@ -60,15 +59,15 @@ class FilesManager extends Api
/** /**
* @param string $prjUid {@min 32} {@max 32} * @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 { try {
$filesManager = new \BusinessModel\FilesManager(); $filesManager = new \BusinessModel\FilesManager();
$filesManager->uploadProcessFilesManager($prjUid, $request_data); $filesManager->uploadProcessFilesManager($prjUid, $prfUid);
} catch (\Exception $e) { } catch (\Exception $e) {
//response //response
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage()); throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
@@ -145,9 +144,6 @@ class ProcessFilesManagerStructure
*/ */
public $prf_path; public $prf_path;
/**
* @var string {@from body}
*/
public $prf_content; public $prf_content;
} }