Merged in darojas/processmaker (pull request #286)
Se controla si un archivo es creado mediante upload o post y se agrega validacion. Cambios en BEHAT, rest
This commit is contained in:
@@ -1333,7 +1333,7 @@ class RestContext extends BehatContext
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch, CURLOPT_URL,$url);
|
||||
curl_setopt($ch, CURLOPT_HTTPHEADER,$headr);
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, array('prf_filename'=>$sfile, "prf_path" => $path, "prf_content" => null));
|
||||
curl_setopt($ch, CURLOPT_POSTFIELDS, array('prf_filename'=>$sfile, "prf_path" => $path));
|
||||
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
|
||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
|
||||
$postResult = curl_exec($ch);
|
||||
|
||||
@@ -67,7 +67,6 @@ class FilesManager
|
||||
}
|
||||
\G::verifyPath($sDirectory, true);
|
||||
$aTheFiles = array();
|
||||
$aDirectories = array();
|
||||
$aFiles = array();
|
||||
$oDirectory = dir($sDirectory);
|
||||
while ($sObject = $oDirectory->read()) {
|
||||
@@ -127,7 +126,7 @@ class FilesManager
|
||||
}
|
||||
}
|
||||
return $aTheFiles;
|
||||
} catch (Exception $e) {
|
||||
} catch (\Exception $e) {
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
@@ -184,6 +183,12 @@ class FilesManager
|
||||
$sDirectory = PATH_DATA_MAILTEMPLATES . $sProcessUID . PATH_SEP . $sSubDirectory . $aData['prf_filename'];
|
||||
break;
|
||||
}
|
||||
$content = $aData['prf_content'];
|
||||
if (is_string($content)) {
|
||||
if (file_exists(PATH_SEP.$sDirectory)) {
|
||||
throw (new \Exception( 'The file: '.$sMainDirectory. PATH_SEP . $sSubDirectory . $aData['prf_filename'] . ' already exists.'));
|
||||
}
|
||||
}
|
||||
if (!file_exists($sCheckDirectory)) {
|
||||
$sPkProcessFiles = \G::generateUniqueID();
|
||||
$oProcessFiles = new \ProcessFiles();
|
||||
|
||||
@@ -624,9 +624,10 @@ class ProcessSupervisor
|
||||
*
|
||||
* @param string $sProcessUID
|
||||
* @param string $sDynUID
|
||||
* @param int $sPudPosition
|
||||
* @access public
|
||||
*/
|
||||
public function addProcessSupervisorDynaform($sProcessUID, $sDynUID)
|
||||
public function addProcessSupervisorDynaform($sProcessUID, $sDynUID, $sPudPosition)
|
||||
{
|
||||
$oTypeDynaform = \DynaformPeer::retrieveByPK($sDynUID);
|
||||
if (is_null( $oTypeDynaform )) {
|
||||
@@ -692,9 +693,10 @@ class ProcessSupervisor
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$aResp = array('pud_uid' => $aRow['STEP_UID'],
|
||||
'pud_position' => $aRow['STEP_POSITION'],
|
||||
'dyn_uid' => $aRow['STEP_UID_OBJ'],
|
||||
'dyn_title' => $aRow['DYN_TITLE']);
|
||||
'dyn_uid' => $aRow['STEP_UID_OBJ']);
|
||||
$oDataset->next();
|
||||
$aRespPosition = $this->updateProcessSupervisorDynaform($sProcessUID ,$aRow['STEP_UID'], $sPudPosition);
|
||||
$aResp = array_merge(array('dyn_title' => $aRow['DYN_TITLE']), $aRespPosition);
|
||||
}
|
||||
return $aResp;
|
||||
} else {
|
||||
@@ -707,9 +709,11 @@ class ProcessSupervisor
|
||||
*
|
||||
* @param string $sProcessUID
|
||||
* @param string $sInputDocumentUID
|
||||
* @param int $sPuiPosition
|
||||
* @access public
|
||||
*/
|
||||
public function addProcessSupervisorInputDocument($sProcessUID, $sInputDocumentUID)
|
||||
|
||||
public function addProcessSupervisorInputDocument($sProcessUID, $sInputDocumentUID, $sPuiPosition)
|
||||
{
|
||||
$oTypeInputDocument= \InputDocumentPeer::retrieveByPK($sInputDocumentUID);
|
||||
if (is_null( $oTypeInputDocument )) {
|
||||
@@ -747,7 +751,7 @@ class ProcessSupervisor
|
||||
$oStepSupervisor->create(array('PRO_UID' => $sProcessUID,
|
||||
'STEP_TYPE_OBJ' => "INPUT_DOCUMENT",
|
||||
'STEP_UID_OBJ' => $sInputDocumentUID,
|
||||
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "DYNAFORM")));
|
||||
'STEP_POSITION' => $oStepSupervisor->getNextPosition($sProcessUID, "INPUT_DOCUMENT")));
|
||||
$sDelimiter = \DBAdapter::getStringDelimiter();
|
||||
$oCriteria = new \Criteria('workflow');
|
||||
$oCriteria->addSelectColumn(\StepSupervisorPeer::STEP_UID);
|
||||
@@ -776,9 +780,10 @@ class ProcessSupervisor
|
||||
while ($aRow = $oDataset->getRow()) {
|
||||
$aResp = array('pui_uid' => $aRow['STEP_UID'],
|
||||
'pui_position' => $aRow['STEP_POSITION'],
|
||||
'input_doc_uid' => $aRow['STEP_UID_OBJ'],
|
||||
'input_doc_title' => $aRow['INP_DOC_TITLE']);
|
||||
'input_doc_uid' => $aRow['STEP_UID_OBJ']);
|
||||
$oDataset->next();
|
||||
$aRespPosition = $this->updateProcessSupervisorInputDocument($sProcessUID ,$aRow['STEP_UID'], $sPuiPosition);
|
||||
$aResp = array_merge(array('input_doc_title' => $aRow['INP_DOC_TITLE']), $aRespPosition);
|
||||
}
|
||||
return $aResp;
|
||||
} else {
|
||||
@@ -821,19 +826,15 @@ class ProcessSupervisor
|
||||
*/
|
||||
public function removeDynaformSupervisor($sProcessUID, $sPudUID)
|
||||
{
|
||||
$oConnection = \Propel::getConnection(\StepSupervisorPeer::DATABASE_NAME);
|
||||
try {
|
||||
$oDynaformSupervidor = \StepSupervisorPeer::retrieveByPK($sPudUID);
|
||||
if (!is_null($oDynaformSupervidor)) {
|
||||
$oConnection->begin();
|
||||
$iResult = $oDynaformSupervidor->delete();
|
||||
$oConnection->commit();
|
||||
return $iResult;
|
||||
$oProcessMap = new \processMap(new \DBConnection());
|
||||
$oProcessMap->removeSupervisorStep( $oDynaformSupervidor->getStepUid(), $sProcessUID, 'DYNAFORM', $oDynaformSupervidor->getStepUidObj(), $oDynaformSupervidor->getStepPosition() );
|
||||
} else {
|
||||
throw (new \Exception('This row does not exist!'));
|
||||
}
|
||||
} catch (Exception $oError) {
|
||||
$oConnection->rollback();
|
||||
throw ($oError);
|
||||
}
|
||||
}
|
||||
@@ -851,10 +852,8 @@ class ProcessSupervisor
|
||||
try {
|
||||
$oInputDocumentSupervidor = \StepSupervisorPeer::retrieveByPK($sPuiUID);
|
||||
if (!is_null($oInputDocumentSupervidor)) {
|
||||
$oConnection->begin();
|
||||
$iResult = $oInputDocumentSupervidor->delete();
|
||||
$oConnection->commit();
|
||||
return $iResult;
|
||||
$oProcessMap = new \processMap(new \DBConnection());
|
||||
$oProcessMap->removeSupervisorStep( $oInputDocumentSupervidor->getStepUid(), $sProcessUID, 'INPUT_DOCUMENT', $oInputDocumentSupervidor->getStepUidObj(), $oInputDocumentSupervidor->getStepPosition() );
|
||||
} else {
|
||||
throw (new \Exception('This row does not exist!'));
|
||||
}
|
||||
@@ -863,5 +862,174 @@ class ProcessSupervisor
|
||||
throw ($oError);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Assign a dynaform supervisor of a process
|
||||
*
|
||||
* @param string $sProcessUID
|
||||
* @param string $sPudUID
|
||||
* @param string $sPudPosition
|
||||
* @access public
|
||||
*/
|
||||
public function updateProcessSupervisorDynaform($sProcessUID, $sPudUID, $sPudPosition)
|
||||
{
|
||||
$oCriteria=\StepSupervisorPeer::retrieveByPK($sPudUID);
|
||||
$actualPosition = $oCriteria->getStepPosition();
|
||||
$tempPosition = (isset($sPudPosition)) ? $sPudPosition : $actualPosition;
|
||||
if (isset($tempPosition) && ($tempPosition != $actualPosition)) {
|
||||
$this->moveDynaforms($sProcessUID, $sPudUID, $tempPosition);
|
||||
}
|
||||
//Return
|
||||
unset($sPudPosition);
|
||||
$sPudPosition = $tempPosition;
|
||||
$oCriteria->setStepPosition($sPudPosition);
|
||||
$oCriteria->save();
|
||||
$oCriteria=array('pud_uid' => $oCriteria->getStepUid(),
|
||||
'pud_position' => $oCriteria->getStepPosition(),
|
||||
'dyn_uid' => $oCriteria->getStepUidObj());
|
||||
return $oCriteria;
|
||||
}
|
||||
|
||||
/**
|
||||
* Assign a InputDocument supervisor of a process
|
||||
*
|
||||
* @param string $sProcessUID
|
||||
* @param string $sPuiUID
|
||||
* @param string $sPuiPosition
|
||||
* @access public
|
||||
*/
|
||||
public function updateProcessSupervisorInputDocument($sProcessUID, $sPuiUID, $sPuiPosition)
|
||||
{
|
||||
$oCriteria=\StepSupervisorPeer::retrieveByPK($sPuiUID);
|
||||
$actualPosition = $oCriteria->getStepPosition();
|
||||
$tempPosition = (isset($sPuiPosition)) ? $sPuiPosition : $actualPosition;
|
||||
if (isset($tempPosition) && ($tempPosition != $actualPosition)) {
|
||||
$this->moveInputDocuments($sProcessUID, $sPuiUID, $tempPosition);
|
||||
}
|
||||
//Return
|
||||
unset($sPuiPosition);
|
||||
$sPuiPosition = $tempPosition;
|
||||
$oCriteria->setStepPosition($sPuiPosition);
|
||||
$oCriteria->save();
|
||||
$oCriteria=array('pui_uid' => $oCriteria->getStepUid(),
|
||||
'pui_position' => $oCriteria->getStepPosition(),
|
||||
'inp_doc_uid' => $oCriteria->getStepUidObj());
|
||||
return $oCriteria;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate Process Uid
|
||||
* @var string $pro_uid. Uid for Process
|
||||
* @var string $pu_uid. Uid for Step
|
||||
* @var string $pu_pos. Position for Step
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function moveDynaforms($pro_uid, $pu_uid, $pu_pos)
|
||||
{
|
||||
$aSteps = $this->getProcessSupervisorDynaforms($pro_uid);
|
||||
$step_pos = $pu_pos;
|
||||
$step_uid = $pu_uid;
|
||||
foreach ($aSteps as $dataStep) {
|
||||
if ($dataStep['pud_uid'] == $step_uid) {
|
||||
$prStepPos = (int)$dataStep['pud_position'];
|
||||
}
|
||||
}
|
||||
$seStepPos = $step_pos;
|
||||
//Principal Step is up
|
||||
if ($prStepPos == $seStepPos) {
|
||||
return true;
|
||||
} elseif ($prStepPos < $seStepPos) {
|
||||
$modPos = 'UP';
|
||||
$newPos = $seStepPos;
|
||||
$iniPos = $prStepPos+1;
|
||||
$finPos = $seStepPos;
|
||||
} else {
|
||||
$modPos = 'DOWN';
|
||||
$newPos = $seStepPos;
|
||||
$iniPos = $seStepPos;
|
||||
$finPos = $prStepPos-1;
|
||||
}
|
||||
$range = range($iniPos, $finPos);
|
||||
foreach ($aSteps as $dataStep) {
|
||||
if ((in_array($dataStep['pud_position'], $range)) && ($dataStep['pud_uid'] != $step_uid)) {
|
||||
$stepChangeIds[] = $dataStep['pud_uid'];
|
||||
$stepChangePos[] = $dataStep['pud_position'];
|
||||
}
|
||||
}
|
||||
foreach ($stepChangeIds as $key => $value) {
|
||||
if ($modPos == 'UP') {
|
||||
$tempPos = ((int)$stepChangePos[$key])-1;
|
||||
$this ->changePosStep($value, $tempPos);
|
||||
} else {
|
||||
$tempPos = ((int)$stepChangePos[$key])+1;
|
||||
$this ->changePosStep($value, $tempPos);
|
||||
}
|
||||
}
|
||||
$this ->changePosStep($value, $tempPos);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate Process Uid
|
||||
* @var string $pro_uid. Uid for Process
|
||||
* @var string $pu_uid. Uid for Step
|
||||
* @var string $pu_pos. Position for Step
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function moveInputDocuments($pro_uid, $pu_uid, $pu_pos)
|
||||
{
|
||||
$aSteps = $this->getProcessSupervisorInputDocuments($pro_uid);
|
||||
$step_pos = $pu_pos;
|
||||
$step_uid = $pu_uid;
|
||||
foreach ($aSteps as $dataStep) {
|
||||
if ($dataStep['pui_uid'] == $step_uid) {
|
||||
$prStepPos = (int)$dataStep['pui_position'];
|
||||
}
|
||||
}
|
||||
$seStepPos = $step_pos;
|
||||
//Principal Step is up
|
||||
if ($prStepPos == $seStepPos) {
|
||||
return true;
|
||||
} elseif ($prStepPos < $seStepPos) {
|
||||
$modPos = 'UP';
|
||||
$newPos = $seStepPos;
|
||||
$iniPos = $prStepPos+1;
|
||||
$finPos = $seStepPos;
|
||||
} else {
|
||||
$modPos = 'DOWN';
|
||||
$newPos = $seStepPos;
|
||||
$iniPos = $seStepPos;
|
||||
$finPos = $prStepPos-1;
|
||||
}
|
||||
$range = range($iniPos, $finPos);
|
||||
foreach ($aSteps as $dataStep) {
|
||||
if ((in_array($dataStep['pui_position'], $range)) && ($dataStep['pui_uid'] != $step_uid)) {
|
||||
$stepChangeIds[] = $dataStep['pui_uid'];
|
||||
$stepChangePos[] = $dataStep['pui_position'];
|
||||
}
|
||||
}
|
||||
foreach ($stepChangeIds as $key => $value) {
|
||||
if ($modPos == 'UP') {
|
||||
$tempPos = ((int)$stepChangePos[$key])-1;
|
||||
$this ->changePosStep($value, $tempPos);
|
||||
} else {
|
||||
$tempPos = ((int)$stepChangePos[$key])+1;
|
||||
$this ->changePosStep($value, $tempPos);
|
||||
}
|
||||
}
|
||||
$this ->changePosStep($value, $tempPos);
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate Process Uid
|
||||
* @var string $pro_uid. Uid for process
|
||||
*
|
||||
*/
|
||||
public function changePosStep ($step_uid, $pos)
|
||||
{
|
||||
$oCriteria=\StepSupervisorPeer::retrieveByPK($step_uid);
|
||||
$oCriteria->setStepPosition($pos);
|
||||
$oCriteria->save();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -37,15 +37,17 @@ class FilesManager extends Api
|
||||
|
||||
/**
|
||||
* @param string $prj_uid {@min 32} {@max 32}
|
||||
* @param ProcessFilesManagerStructure $request_data
|
||||
* @param ProcessFilesManagerStructurePost $request_data
|
||||
* @param string $prf_content
|
||||
*
|
||||
* @url POST /:prj_uid/file-manager
|
||||
*/
|
||||
public function doPostProcessFilesManager($prj_uid, ProcessFilesManagerStructure $request_data)
|
||||
public function doPostProcessFilesManager($prj_uid, ProcessFilesManagerStructurePost $request_data, $prf_content=null)
|
||||
{
|
||||
try {
|
||||
$userUid = $this->getUserId();
|
||||
$request_data = (array)($request_data);
|
||||
$request_data = array_merge(array('prf_content' => $prf_content ), $request_data);
|
||||
$filesManager = new \BusinessModel\FilesManager();
|
||||
$arrayData = $filesManager->addProcessFilesManager($prj_uid, $userUid, $request_data);
|
||||
//Response
|
||||
@@ -151,6 +153,18 @@ class FilesManager extends Api
|
||||
}
|
||||
}
|
||||
|
||||
class ProcessFilesManagerStructurePost
|
||||
{ /**
|
||||
* @var string {@from body}
|
||||
*/
|
||||
public $prf_filename;
|
||||
|
||||
/**
|
||||
* @var string {@from body}
|
||||
*/
|
||||
public $prf_path;
|
||||
}
|
||||
|
||||
class ProcessFilesManagerStructure
|
||||
{
|
||||
/**
|
||||
|
||||
@@ -215,14 +215,15 @@ class ProcessSupervisors extends Api
|
||||
*
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $dyn_uid {@min 32} {@max 32}
|
||||
* @param int $pud_position
|
||||
*
|
||||
* @status 201
|
||||
*/
|
||||
public function doPostProcessSupervisorDynaform($prjUid, $dyn_uid)
|
||||
public function doPostProcessSupervisorDynaform($prjUid, $dyn_uid, $pud_position=null)
|
||||
{
|
||||
try {
|
||||
$supervisor = new \BusinessModel\ProcessSupervisor();
|
||||
$objectData = $supervisor->addProcessSupervisorDynaform($prjUid, $dyn_uid);
|
||||
$objectData = $supervisor->addProcessSupervisorDynaform($prjUid, $dyn_uid, $pud_position);
|
||||
//Response
|
||||
$response = $objectData;
|
||||
} catch (\Exception $e) {
|
||||
@@ -237,14 +238,15 @@ class ProcessSupervisors extends Api
|
||||
*
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $inp_doc_uid {@min 32} {@max 32}
|
||||
* @param int $pui_position
|
||||
*
|
||||
* @status 201
|
||||
*/
|
||||
public function doPostProcessSupervisorInputDocument($prjUid, $inp_doc_uid)
|
||||
public function doPostProcessSupervisorInputDocument($prjUid, $inp_doc_uid, $pui_position=null)
|
||||
{
|
||||
try {
|
||||
$supervisor = new \BusinessModel\ProcessSupervisor();
|
||||
$objectData = $supervisor->addProcessSupervisorInputDocument($prjUid, $inp_doc_uid);
|
||||
$objectData = $supervisor->addProcessSupervisorInputDocument($prjUid, $inp_doc_uid, $pui_position);
|
||||
//Response
|
||||
$response = $objectData;
|
||||
} catch (\Exception $e) {
|
||||
@@ -265,7 +267,7 @@ class ProcessSupervisors extends Api
|
||||
{
|
||||
try {
|
||||
$supervisor = new \BusinessModel\ProcessSupervisor();
|
||||
$arrayData = $supervisor->removeProcessSupervisor($prjUid, $puUid);
|
||||
$supervisor->removeProcessSupervisor($prjUid, $puUid);
|
||||
} catch (\Exception $e) {
|
||||
//response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
@@ -283,7 +285,7 @@ class ProcessSupervisors extends Api
|
||||
{
|
||||
try {
|
||||
$supervisor = new \BusinessModel\ProcessSupervisor();
|
||||
$arrayData = $supervisor->removeDynaformSupervisor($prjUid, $pudUid);
|
||||
$supervisor->removeDynaformSupervisor($prjUid, $pudUid);
|
||||
} catch (\Exception $e) {
|
||||
//response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
@@ -301,11 +303,57 @@ class ProcessSupervisors extends Api
|
||||
{
|
||||
try {
|
||||
$supervisor = new \BusinessModel\ProcessSupervisor();
|
||||
$arrayData = $supervisor->removeInputDocumentSupervisor($prjUid, $puiUid);
|
||||
$supervisor->removeInputDocumentSupervisor($prjUid, $puiUid);
|
||||
} catch (\Exception $e) {
|
||||
//response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @url PUT /:prjUid/process-supervisor/dynaform/:pud_uid
|
||||
*
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $pud_uid {@min 32} {@max 32}
|
||||
* @param int $pud_position
|
||||
*
|
||||
* @status 201
|
||||
*/
|
||||
public function doPutProcessSupervisorDynaform($prjUid, $pud_uid, $pud_position = null)
|
||||
{
|
||||
try {
|
||||
$supervisor = new \BusinessModel\ProcessSupervisor();
|
||||
$objectData = $supervisor->updateProcessSupervisorDynaform($prjUid, $pud_uid, $pud_position);
|
||||
//Response
|
||||
$response = $objectData;
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
|
||||
/**
|
||||
* @url PUT /:prjUid/process-supervisor/input-document/:pui_uid
|
||||
*
|
||||
* @param string $prjUid {@min 32} {@max 32}
|
||||
* @param string $pui_uid {@min 32} {@max 32}
|
||||
* @param int $pui_position
|
||||
*
|
||||
* @status 201
|
||||
*/
|
||||
public function doPutProcessSupervisorInputDocument($prjUid, $pui_uid, $pui_position = null)
|
||||
{
|
||||
try {
|
||||
$supervisor = new \BusinessModel\ProcessSupervisor();
|
||||
$objectData = $supervisor->updateProcessSupervisorInputDocument($prjUid, $pui_uid, $pui_position);
|
||||
//Response
|
||||
$response = $objectData;
|
||||
} catch (\Exception $e) {
|
||||
//Response
|
||||
throw new RestException(Api::STAT_APP_EXCEPTION, $e->getMessage());
|
||||
}
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user