diff --git a/workflow/engine/src/BusinessModel/DataBaseConnection.php b/workflow/engine/src/BusinessModel/DataBaseConnection.php index cd95698a0..8f0a2be67 100644 --- a/workflow/engine/src/BusinessModel/DataBaseConnection.php +++ b/workflow/engine/src/BusinessModel/DataBaseConnection.php @@ -105,21 +105,21 @@ class DataBaseConnection $typesExists[] = $value['id']; } if (!in_array($dataDBConnection['DBS_TYPE'], $typesExists)) { - throw (new \Exception("This 'dbs_type' is invalid")); + throw (new \Exception("The dababase connection with dbs_type: '" . $dataDBConnection['DBS_TYPE'] . " is invalid")); } } if (isset($dataDBConnection['DBS_SERVER']) && $dataDBConnection['DBS_SERVER'] == '') { - throw (new \Exception("This 'dbs_server' is invalid")); + throw (new \Exception("The dababase connection with dbs_server: '" . $dataDBConnection['DBS_SERVER'] . "', is invalid")); } if (isset($dataDBConnection['DBS_DATABASE_NAME']) && $dataDBConnection['DBS_DATABASE_NAME'] == '') { - throw (new \Exception("This 'dbs_database_name' is invalid")); + throw (new \Exception("The dababase connection with dbs_database_name: '" . $dataDBConnection['DBS_DATABASE_NAME'] . "', is invalid")); } if (isset($dataDBConnection['DBS_PORT']) && ($dataDBConnection['DBS_PORT'] == ''|| $dataDBConnection['DBS_PORT'] == 0)) { - throw (new \Exception("This 'dbs_port' is invalid")); + throw (new \Exception("The dababase connection with dbs_port: '" . $dataDBConnection['DBS_PORT'] . "', is invalid")); } if (isset($dataDBConnection['DBS_ENCODE'])) { @@ -130,7 +130,7 @@ class DataBaseConnection $encodesExists[] = $value['0']; } if (!in_array($dataDBConnection['DBS_ENCODE'], $encodesExists)) { - throw (new \Exception( "This 'dbs_encode' is invalid for '" . $dataDBConnection['DBS_TYPE'] . "'" )); + throw (new \Exception( "The dababase connection with dbs_encode: '" . $dataDBConnection['DBS_ENCODE'] . "', is invalid" )); } } diff --git a/workflow/engine/src/BusinessModel/FilesManager.php b/workflow/engine/src/BusinessModel/FilesManager.php index 5a656030a..5f6b65d34 100644 --- a/workflow/engine/src/BusinessModel/FilesManager.php +++ b/workflow/engine/src/BusinessModel/FilesManager.php @@ -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); diff --git a/workflow/engine/src/BusinessModel/ProcessSupervisor.php b/workflow/engine/src/BusinessModel/ProcessSupervisor.php index 283a5d71d..e233fd6a9 100644 --- a/workflow/engine/src/BusinessModel/ProcessSupervisor.php +++ b/workflow/engine/src/BusinessModel/ProcessSupervisor.php @@ -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(); diff --git a/workflow/engine/src/BusinessModel/Table.php b/workflow/engine/src/BusinessModel/Table.php index 9645813c4..c58e3541e 100644 --- a/workflow/engine/src/BusinessModel/Table.php +++ b/workflow/engine/src/BusinessModel/Table.php @@ -526,7 +526,11 @@ class Table $dataValidate['rep_tab_dsc'] = $tab_data['rep_tab_dsc']; $dataValidate['rep_tab_connection'] = $row['DBS_UID']; $dataValidate['rep_tab_type'] = $row['ADD_TAB_TYPE']; - $dataValidate['rep_tab_grid'] = $row['ADD_TAB_GRID']; + $dataValidate['rep_tab_grid'] = ''; + if (strpos($row['ADD_TAB_GRID'], '-')) { + list($gridName, $gridId) = explode( '-', $row['ADD_TAB_GRID'] ); + $dataValidate['rep_tab_grid'] = $gridId; + } } else { $dataValidate['pmt_uid'] = $tab_uid; $dataValidate['pmt_tab_name'] = $row['ADD_TAB_NAME']; diff --git a/workflow/engine/src/BusinessModel/User.php b/workflow/engine/src/BusinessModel/User.php index e5582d15c..85aa0a2a3 100644 --- a/workflow/engine/src/BusinessModel/User.php +++ b/workflow/engine/src/BusinessModel/User.php @@ -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()) { diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php b/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php index 05d342dff..f04850374 100644 --- a/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php +++ b/workflow/engine/src/Services/Api/ProcessMaker/Project/FilesManager.php @@ -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) { diff --git a/workflow/engine/src/Services/Api/ProcessMaker/User.php b/workflow/engine/src/Services/Api/ProcessMaker/User.php index 90f578d8f..f87ddca43 100644 --- a/workflow/engine/src/Services/Api/ProcessMaker/User.php +++ b/workflow/engine/src/Services/Api/ProcessMaker/User.php @@ -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) {