Merged in darojas/processmaker (pull request #202)

Se adicionan validaciones a PMUSER. Se modifica download y upload (incompleto) para FILESMANAGER
This commit is contained in:
erik ao
2014-02-17 16:35:07 -04:00
5 changed files with 102 additions and 43 deletions

View File

@@ -391,18 +391,12 @@ class FilesManager
$sDirectory = PATH_DATA_MAILTEMPLATES . $sProcessUID . PATH_SEP . $sfile;
break;
}
$arrayTaskUid = $this->getFileManagerUid($sDirectory);
if (!$arrayTaskUid) {
throw (new \Exception( 'invalid value specified for `path`.'));
}
/*
This is usefull when you are downloading big files, as it
will prevent time out of the script :
*/
$url = $sDirectory;
$sPath = $sfile;//path to
set_time_limit(0);
ini_set('display_errors',true);//Just in case we get some errors, let us know....
$fp = fopen ($sDirectory, 'w+');//This is the file where we save the information
$ch = curl_init($sDirectory);//Here is the file we are downloading
ini_set('display_errors',true);//Just in case we get some errors, let us know
$fp = fopen ($sPath, 'w');//This is the file where we save the information
$ch = curl_init(str_replace(" ","%20",$url));
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

View File

@@ -50,6 +50,7 @@ class ProcessSupervisor
$oCriteria->addJoin(\ProcessUserPeer::USR_UID, \UsersPeer::USR_UID, \Criteria::LEFT_JOIN);
$oCriteria->add(\ProcessUserPeer::PU_TYPE, 'SUPERVISOR');
$oCriteria->add(\ProcessUserPeer::PRO_UID, $sProcessUID);
$oCriteria->add(\UsersPeer::USR_STATUS, 'ACTIVE');
$oCriteria->addAscendingOrderByColumn(\UsersPeer::USR_FIRSTNAME);
$oDataset = \ProcessUserPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
@@ -61,7 +62,7 @@ class ProcessSupervisor
'usr_firstname' => $aRow['USR_FIRSTNAME'],
'usr_lastname' => $aRow['USR_LASTNAME'],
'usr_username' => $aRow['USR_USERNAME'],
'usr_email' => $aRow['USR_EMAIL'] );
'usr_email' => $aRow['USR_EMAIL']);
$oDataset->next();
}
if ($aResp == null) {
@@ -218,6 +219,7 @@ class ProcessSupervisor
$oCriteria->add(\UsersPeer::USR_UID, $aUIDS, \Criteria::IN);
$oCriteria->addAscendingOrderByColumn(\UsersPeer::USR_FIRSTNAME);
$oCriteria->add(\UsersPeer::USR_ROLE, 'PROCESSMAKER_ADMIN', \Criteria::EQUAL);
$oCriteria->add(\UsersPeer::USR_STATUS, 'ACTIVE');
$oDataset = \UsersPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();

View File

@@ -211,6 +211,36 @@ class User
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Users.php");
$arrayData = array_change_key_case($arrayData, CASE_UPPER);
$form = $arrayData;
if ($form['USR_REPLACED_BY'] != '') {
$oReplacedBy = \UsersPeer::retrieveByPK($form['USR_REPLACED_BY']);
if (is_null($oReplacedBy)) {
throw new \Exception('`usr_replaced_by`:'.$form['USR_REPLACED_BY'].' '.\G::LoadTranslation('ID_AUTHENTICATION_SOURCE_INVALID'));
}
}
if ($form['USR_COUNTRY'] != '') {
$oCountry = \IsoCountryPeer::retrieveByPK($form['USR_COUNTRY']);
if (is_null($oCountry)) {
throw new \Exception('invalid value for `usr_country`: '.$form['USR_COUNTRY']);
}
}
if ($form['USR_CITY'] != '') {
$oCity = \IsoSubdivisionPeer::retrieveByPK($form['USR_COUNTRY'], $form['USR_CITY']);
if (is_null($oCity)) {
throw new \Exception('invalid value for `usr_city`: '.$form['USR_CITY']);
}
}
if ($form['USR_LOCATION'] != '') {
$oLocation = \IsoLocationPeer::retrieveByPK($form['USR_COUNTRY'], $form['USR_LOCATION']);
if (is_null($oLocation)) {
throw new \Exception('invalid value for `usr_location`: '.$form['USR_LOCATION']);
}
}
if ($form['USR_COUNTRY'] != '') {
$oReplacedBy = \IsoCountryPeer::retrieveByPK($form['USR_COUNTRY']);
if (is_null($oReplacedBy)) {
throw new \Exception('invalid value for `usr_country`: '.$form['USR_COUNTRY']);
}
}
if (isset($arrayData['USR_UID'])) {
$form['USR_UID'] = $arrayData['USR_UID'];
} else {
@@ -255,10 +285,14 @@ class User
} else {
$aData['USR_LASTNAME'] = $form['USR_LASTNAME'];
}
if (!filter_var($form['USR_EMAIL'], FILTER_VALIDATE_EMAIL)) {
throw new \Exception('`usr_email`. '.\G::LoadTranslation('ID_INCORRECT_EMAIL'));
if ($form['USR_EMAIL'] == '') {
throw new \Exception('invalid value specified for `usr_email`, can`t be null.');
} else {
$aData['USR_EMAIL'] = $form['USR_EMAIL'];
if (!filter_var($form['USR_EMAIL'], FILTER_VALIDATE_EMAIL)) {
throw new \Exception('`usr_email`. '.\G::LoadTranslation('ID_INCORRECT_EMAIL'));
} else {
$aData['USR_EMAIL'] = $form['USR_EMAIL'];
}
}
if ($form['USR_DUE_DATE'] == '') {
throw new \Exception('`usr_due_date`. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE'));
@@ -279,25 +313,29 @@ class User
$aData['USR_BIRTHDAY'] = date('Y-m-d');
$aData['USR_AUTH_USER_DN'] = $form['USR_AUTH_USER_DN'];
$statusWF = $form['USR_STATUS'];
if ($form['USR_STATUS'] == '') {
throw new \Exception('`usr_status`. '.\G::LoadTranslation('ID_SOME_FIELDS_REQUIRED'));
if ($form['USR_STATUS'] == '') {
throw new \Exception('invalid value specified for `usr_status`, can`t be null');
} else {
if ($form['USR_STATUS'] == 'ACTIVE' || $form['USR_STATUS'] == 'INACTIVE' || $form['USR_STATUS'] == 'VACATION') {
$aData['USR_STATUS'] = $form['USR_STATUS'];
} else {
throw new \Exception('`usr_status`. Invalid value for field.');
throw new \Exception('`usr_status`. Invalid value for status field.');
}
}
$oCriteria = new \Criteria('rbac');
$oCriteria->add(\RolesPeer::ROL_CODE, $form['USR_ROLE']);
$oDataset = \RolesPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();
if ($oDataset->getRow()) {
$aData['USR_ROLE'] = $form['USR_ROLE'];
if ($form['USR_ROLE'] == '') {
throw new \Exception('invalid value specified for `usr_role`, can`t be null');
} else {
throw new \Exception('`usr_role`. Invalid value for field.');
$oCriteria = new \Criteria('rbac');
$oCriteria->add(\RolesPeer::ROL_CODE, $form['USR_ROLE']);
$oDataset = \RolesPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next();
$aRow = $oDataset->getRow();
if ($oDataset->getRow()) {
$aData['USR_ROLE'] = $form['USR_ROLE'];
} else {
throw new \Exception('`usr_role`. Invalid value for role field.');
}
}
try {
if ($aData['USR_STATUS'] == 'ACTIVE') {
@@ -308,7 +346,7 @@ class User
}
$sUserUID = $this->createUser($aData);
if ($form['USR_ROLE'] != '') {
$this->assignRoleToUser($sUserUID, $form['USR_ROLE']);
$this->assignRoleToUser($sUserUID, $form['USR_ROLE']);
}
} catch(Exception $oError) {
throw new \Exception($oError->getMessage());
@@ -367,7 +405,7 @@ class User
$form = $arrayData;
$countPermission = 0;
$permission = $this->loadUserRolePermission($RBAC->sSystem, $usrLoggedUid);
foreach($permission as $key => $value) {
foreach ($permission as $key => $value) {
if ($value["PER_CODE"] == 'PM_USERS') {
$countPermission+=1;
}
@@ -386,12 +424,6 @@ class User
if ($form['USR_NEW_PASS'] != '') {
$form['USR_PASSWORD'] = md5($form['USR_NEW_PASS']);
}
if (!isset($form['USR_CITY'])) {
$form['USR_CITY'] = '';
}
if (!isset($form['USR_LOCATION'])) {
$form['USR_LOCATION'] = '';
}
if (!isset($form['USR_AUTH_USER_DN'])) {
$form['USR_AUTH_USER_DN'] = '';
}
@@ -520,9 +552,32 @@ class User
} else {
$this->updateUser($aData);
}
$aData['USR_COUNTRY'] = $form['USR_COUNTRY'];
$aData['USR_CITY'] = $form['USR_CITY'];
$aData['USR_LOCATION'] = $form['USR_LOCATION'];
if ($form['USR_COUNTRY'] != '') {
$oReplacedBy = \IsoCountryPeer::retrieveByPK($form['USR_COUNTRY']);
if (is_null($oReplacedBy)) {
throw new \Exception('invalid value for `usr_country`: '.$form['USR_COUNTRY']);
} else {
$aData['USR_COUNTRY'] = $form['USR_COUNTRY'];
$aData['USR_CITY'] = '';
$aData['USR_LOCATION'] = '';
}
}
if ($form['USR_CITY'] != '') {
$oCity = \IsoSubdivisionPeer::retrieveByPK($form['USR_COUNTRY'], $form['USR_CITY']);
if (is_null($oCity)) {
throw new \Exception('invalid value for `usr_city`: '.$form['USR_CITY']);
} else {
$aData['USR_CITY'] = $form['USR_CITY'];
}
}
if ($form['USR_LOCATION'] != '') {
$oLocation = \IsoLocationPeer::retrieveByPK($form['USR_COUNTRY'], $form['USR_LOCATION']);
if (is_null($oLocation)) {
throw new \Exception('invalid value for `usr_location`: '.$form['USR_LOCATION']);
} else {
$aData['USR_LOCATION'] = $form['USR_LOCATION'];
}
}
$aData['USR_ADDRESS'] = $form['USR_ADDRESS'];
$aData['USR_PHONE'] = $form['USR_PHONE'];
$aData['USR_ZIP_CODE'] = $form['USR_ZIP_CODE'];
@@ -530,8 +585,13 @@ class User
if ($form['USR_ROLE'] != '') {
$aData['USR_ROLE'] = $form['USR_ROLE'];
}
if (isset($form['USR_REPLACED_BY'])) {
$aData['USR_REPLACED_BY'] = $form['USR_REPLACED_BY'];
if ($form['USR_REPLACED_BY'] != '') {
$oReplacedBy = \UsersPeer::retrieveByPK($form['USR_REPLACED_BY']);
if (is_null($oReplacedBy)) {
throw new \Exception('`usr_replaced_by`:'.$form['USR_REPLACED_BY'].' '.\G::LoadTranslation('ID_AUTHENTICATION_SOURCE_INVALID'));
} else {
$aData['USR_REPLACED_BY'] = $form['USR_REPLACED_BY'];
}
}
if (isset($form['USR_AUTH_USER_DN'])) {
$aData['USR_AUTH_USER_DN'] = $form['USR_AUTH_USER_DN'];
@@ -674,6 +734,7 @@ class User
}
}
}
$oCriteria->add(\UsersPeer::USR_STATUS, 'CLOSED', \Criteria::ALT_NOT_EQUAL);
$oDataset = \UsersPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($oDataset->next()) {
@@ -710,6 +771,7 @@ class User
$oCriteria->add( $oCriteria->getNewCriterion( \UsersPeer::USR_USERNAME, "%$filter%", \Criteria::LIKE )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_FIRSTNAME, "%$filter%", \Criteria::LIKE ) )->addOr( $oCriteria->getNewCriterion( \UsersPeer::USR_LASTNAME, "%$filter%", \Criteria::LIKE ) ) );
}
$oCriteria->add(\UsersPeer::USR_UID, $userUid);
$oCriteria->add(\UsersPeer::USR_STATUS, 'CLOSED', \Criteria::ALT_NOT_EQUAL);
$oDataset = \UsersPeer::doSelectRS($oCriteria);
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
while ($oDataset->next()) {

View File

@@ -67,10 +67,8 @@ class FilesManager extends Api
public function doPostProcessFilesManagerUpload($prjUid)
{
try {
//echo $request_data; die();
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "src" . PATH_SEP . "Extension" . PATH_SEP . "Restler" . PATH_SEP . "UploadFormat.php");
$userUid = $this->getUserId();
$filesManager = new \BusinessModel\FilesManager();
$arrayData = $filesManager->uploadProcessFilesManager($prjUid, $userUid);
//Response
$response = $arrayData;
} catch (\Exception $e) {

View File

@@ -13,6 +13,9 @@ class User extends Api
{
/**
* @url GET
* @param string $filter
* @param int $start
* @param int $limit
*/
public function doGetUsers($filter = '', $start = null, $limit = null)
{