From af87d2a150b79d47021d6921dae6ef1f19b68a39 Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Mon, 5 May 2014 15:04:04 -0400 Subject: [PATCH 1/6] Se arregla bug en PM USER, PUT. Se cambia la variable $RBAC sSystem, por PROCESSMAKER. --- workflow/engine/src/ProcessMaker/BusinessModel/User.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/User.php b/workflow/engine/src/ProcessMaker/BusinessModel/User.php index 0a7cf4bea..23d885920 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/User.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/User.php @@ -449,7 +449,7 @@ class User $memKey = 'rbacSession' . session_id(); $memcache = & \PMmemcached::getSingleton(defined('SYS_SYS') ? SYS_SYS : '' ); if (($RBAC->aUserInfo = $memcache->get($memKey)) === false) { - $this->loadUserRolePermission($RBAC->sSystem, $usrLoggedUid); + $this->loadUserRolePermission('PROCESSMAKER', $usrLoggedUid); $memcache->set($memKey, $RBAC->aUserInfo, \PMmemcached::EIGHT_HOURS); } if ($RBAC->aUserInfo['PROCESSMAKER']['ROLE']['ROL_CODE'] == 'PROCESSMAKER_ADMIN') { From f463dd6575a032081263ce7903e65d90c56288bf Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Mon, 5 May 2014 15:42:44 -0400 Subject: [PATCH 2/6] Se arregla bug en PM USER, PUT. Se agregan validaciones. --- .../BusinessModel/CaseScheduler.php | 4 +- .../src/ProcessMaker/BusinessModel/User.php | 185 +++++++++++------- 2 files changed, 112 insertions(+), 77 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php b/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php index 6c76422be..a498cffb4 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php @@ -535,9 +535,9 @@ class CaseScheduler } else { $sOption = $caseSchedulerData['SCH_OPTION']; } - $caseSchedulerData['sch_repeat_stop_if_running'] = '0'; +/* $caseSchedulerData['sch_repeat_stop_if_running'] = '0'; $caseSchedulerData['case_sh_plugin_uid'] = null; - $caseSchedulerData = array_change_key_case($caseSchedulerData, CASE_UPPER); + */ $caseSchedulerData = array_change_key_case($caseSchedulerData, CASE_UPPER); if (empty($caseSchedulerData)) { die( 'the information sended is empty!' ); } diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/User.php b/workflow/engine/src/ProcessMaker/BusinessModel/User.php index 23d885920..7cbb0a6de 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/User.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/User.php @@ -413,11 +413,16 @@ class User if ($countPermission != 1) { throw new \Exception('This user: '.$usrLoggedUid. ', can not update the data.'); } - $criteria = new \Criteria(); - $criteria->addSelectColumn(\UsersPeer::USR_USERNAME); - $criteria->add(\UsersPeer::USR_USERNAME, utf8_encode($arrayData['USR_USERNAME'])); - if (\UsersPeer::doCount($criteria) > 0) { - throw new \Exception('usr_username. '.\G::LoadTranslation('ID_USERNAME_ALREADY_EXISTS', array('USER_ID' => $arrayData['USR_USERNAME']))); + if (isset($arrayData['USR_USERNAME'])) { + $criteria = new \Criteria(); + $criteria->addSelectColumn(\UsersPeer::USR_USERNAME); + $criteria->add(\UsersPeer::USR_USERNAME, utf8_encode($arrayData['USR_USERNAME'])); + if (\UsersPeer::doCount($criteria) > 0) { + throw new \Exception('usr_username. '.\G::LoadTranslation('ID_USERNAME_ALREADY_EXISTS', array('USER_ID' => $arrayData['USR_USERNAME']))); + } + if ($form['USR_USERNAME'] != '') { + $aData['USR_USERNAME'] = $form['USR_USERNAME']; + } } if (isset($usrUid)) { $form['USR_UID'] = $usrUid; @@ -434,9 +439,7 @@ class User $form['USR_AUTH_USER_DN'] = ''; } $aData['USR_UID'] = $form['USR_UID']; - if ($form['USR_USERNAME'] != '') { - $aData['USR_USERNAME'] = $form['USR_USERNAME']; - } + if (isset($form['USR_PASSWORD'])) { if ($form['USR_PASSWORD'] != '') { if ($form['USR_NEW_PASS'] != $form['USR_CNF_PASS']) { @@ -519,84 +522,116 @@ class User if ($form['USR_LASTNAME'] != '') { $aData['USR_LASTNAME'] = $form['USR_LASTNAME']; } - if ($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 (isset ($form['USR_EMAIL'])) { + if ($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'] != '') { - $dueDate = explode("-", $form['USR_DUE_DATE']); - if (ctype_digit($dueDate[0])) { - if (checkdate($dueDate[1], $dueDate[2], $dueDate[0]) == false) { - throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE')); + if (isset ($form['USR_DUE_DATE'])) { + if ($form['USR_DUE_DATE'] != '') { + $dueDate = explode("-", $form['USR_DUE_DATE']); + if (ctype_digit($dueDate[0])) { + if (checkdate($dueDate[1], $dueDate[2], $dueDate[0]) == false) { + throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE')); + } else { + $aData['USR_DUE_DATE'] = $form['USR_DUE_DATE']; + } } else { - $aData['USR_DUE_DATE'] = $form['USR_DUE_DATE']; + throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE')); } - } else { - throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE')); } } $aData['USR_UPDATE_DATE'] = date('Y-m-d H:i:s'); - if ($form['USR_STATUS'] != '') { - $aData['USR_STATUS'] = $form['USR_STATUS']; + if (isset ($form['USR_STATUS'])) { + if ($form['USR_STATUS'] != '') { + $aData['USR_STATUS'] = $form['USR_STATUS']; + } } - if ($form['USR_ROLE'] != '') { - require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Roles.php"); - $oCriteria = new \Criteria('rbac'); - $oCriteria->add(\RolesPeer::ROL_CODE, $form['USR_ROLE']); - $oDataset = \RolesPeer::doSelectRS($oCriteria); - $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); - $oDataset->next(); - if ($oDataset->getRow()) { + if (isset ($form['USR_ROLE'])) { + if ($form['USR_ROLE'] != '') { + require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Roles.php"); + $oCriteria = new \Criteria('rbac'); + $oCriteria->add(\RolesPeer::ROL_CODE, $form['USR_ROLE']); + $oDataset = \RolesPeer::doSelectRS($oCriteria); + $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); + $oDataset->next(); + if ($oDataset->getRow()) { + $aData['USR_ROLE'] = $form['USR_ROLE']; + } else { + throw new \Exception('usr_role. Invalid value for field.'); + } + $this->updateUser($aData, $form['USR_ROLE']); + } else { + $this->updateUser($aData); + } + } + if (isset ($form['USR_COUNTRY'])) { + 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 (isset ($form['USR_CITY'])) { + 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 (isset ($form['USR_LOCATION'])) { + 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']; + } + } + } + if (isset ($form['USR_ADDRESS'])) { + $aData['USR_ADDRESS'] = $form['USR_ADDRESS']; + } + if (isset ($form['USR_PHONE'])) { + $aData['USR_PHONE'] = $form['USR_PHONE']; + } + if (isset ($form['USR_FAX'])) { + $aData['USR_FAX'] = $form['USR_FAX']; + } + if (isset ($form['USR_CELLULAR'])) { + $aData['USR_CELLULAR'] = $form['USR_CELLULAR']; + } + if (isset ($form['USR_ZIP_CODE'])) { + $aData['USR_ZIP_CODE'] = $form['USR_ZIP_CODE']; + } + if (isset ($form['USR_POSITION'])) { + $aData['USR_POSITION'] = $form['USR_POSITION']; + } + if (isset ($form['USR_ROLE'])) { + if ($form['USR_ROLE'] != '') { $aData['USR_ROLE'] = $form['USR_ROLE']; - } else { - throw new \Exception('usr_role. Invalid value for field.'); - } - $this->updateUser($aData, $form['USR_ROLE']); - } else { - $this->updateUser($aData); - } - 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']; - $aData['USR_POSITION'] = $form['USR_POSITION']; - if ($form['USR_ROLE'] != '') { - $aData['USR_ROLE'] = $form['USR_ROLE']; - } - 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_ROLE'])) { + 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'])) { From 640a3546a08fb0c0bf3674cef0c94e69f9ad855a Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Mon, 5 May 2014 15:44:09 -0400 Subject: [PATCH 3/6] Se arregla bug en PM USER, PUT. Se agregan validaciones. --- .../engine/src/ProcessMaker/BusinessModel/CaseScheduler.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php b/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php index a498cffb4..6c76422be 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/CaseScheduler.php @@ -535,9 +535,9 @@ class CaseScheduler } else { $sOption = $caseSchedulerData['SCH_OPTION']; } -/* $caseSchedulerData['sch_repeat_stop_if_running'] = '0'; + $caseSchedulerData['sch_repeat_stop_if_running'] = '0'; $caseSchedulerData['case_sh_plugin_uid'] = null; - */ $caseSchedulerData = array_change_key_case($caseSchedulerData, CASE_UPPER); + $caseSchedulerData = array_change_key_case($caseSchedulerData, CASE_UPPER); if (empty($caseSchedulerData)) { die( 'the information sended is empty!' ); } From fee46996411500b2aea3aaafbd422ef905f489b6 Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Mon, 5 May 2014 16:55:27 -0400 Subject: [PATCH 4/6] Se arregla bug en PM USER, PUT. Se cambia el nombre a la variable aData --- .../src/ProcessMaker/BusinessModel/User.php | 202 +++++++++--------- 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/User.php b/workflow/engine/src/ProcessMaker/BusinessModel/User.php index 7cbb0a6de..fdb0760e6 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/User.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/User.php @@ -7,11 +7,11 @@ class User /** * Create User Uid * - * @param array $arrayData Data + * @param array $arrayUserData Data * * return id */ - public function createUser($aData) + public function createUser($userData) { require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "RbacUsers.php"); $this->userObj = new \RbacUsers(); @@ -29,11 +29,11 @@ class User try { $oRBACUsers = new \RbacUsers(); do { - $aData['USR_UID'] = \G::generateUniqueID(); - } while ($oRBACUsers->load($aData['USR_UID'])); - $oRBACUsers->fromArray($aData, \BasePeer::TYPE_FIELDNAME); + $userData['USR_UID'] = \G::generateUniqueID(); + } while ($oRBACUsers->load($userData['USR_UID'])); + $oRBACUsers->fromArray($userData, \BasePeer::TYPE_FIELDNAME); $iResult = $oRBACUsers->save(); - return $aData['USR_UID']; + return $userData['USR_UID']; } catch (Exception $oError) { $oConnection->rollback(); throw($oError); @@ -144,23 +144,23 @@ class User * updated an user * * @access public - * @param array $aData + * @param array $userData * @param string $sRolCode * @return void */ - public function updateUser ($aData = array(), $sRolCode = '') + public function updateUser ($userData = array(), $sRolCode = '') { require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "RbacUsers.php"); $this->userObj = new \RbacUsers(); - if (isset( $aData['USR_STATUS'] )) { - if ($aData['USR_STATUS'] == 'ACTIVE') { - $aData['USR_STATUS'] = 1; + if (isset( $userData['USR_STATUS'] )) { + if ($userData['USR_STATUS'] == 'ACTIVE') { + $userData['USR_STATUS'] = 1; } } - $this->userObj->update( $aData ); + $this->userObj->update( $userData ); if ($sRolCode != '') { - $this->removeRolesFromUser( $aData['USR_UID'] ); - $this->assignRoleToUser( $aData['USR_UID'], $sRolCode ); + $this->removeRolesFromUser( $userData['USR_UID'] ); + $this->assignRoleToUser( $userData['USR_UID'], $sRolCode ); } } @@ -201,16 +201,16 @@ class User /** * Create User * - * @param array $arrayData Data + * @param array $arrayUserData Data * * return array Return data of the new User created */ - public function create($arrayData) + public function create($arrayUserData) { try { 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; + $arrayUserData = array_change_key_case($arrayUserData, CASE_UPPER); + $form = $arrayUserData; if (array_key_exists('USR_REPLACED_BY', $form)) { if ($form['USR_REPLACED_BY'] != '') { $oReplacedBy = \UsersPeer::retrieveByPK($form['USR_REPLACED_BY']); @@ -243,8 +243,8 @@ class User } } } - if (isset($arrayData['USR_UID'])) { - $form['USR_UID'] = $arrayData['USR_UID']; + if (isset($arrayUserData['USR_UID'])) { + $form['USR_UID'] = $arrayUserData['USR_UID']; } else { $form['USR_UID'] = ''; } @@ -274,28 +274,28 @@ class User $criteria = new \Criteria(); $criteria->addSelectColumn(\UsersPeer::USR_USERNAME); if (array_key_exists('USR_USERNAME', $form)) { - $criteria->add(\UsersPeer::USR_USERNAME, utf8_encode($arrayData['USR_USERNAME'])); + $criteria->add(\UsersPeer::USR_USERNAME, utf8_encode($arrayUserData['USR_USERNAME'])); } else { throw new \Exception('usr_name. '.\G::LoadTranslation('ID_MSG_ERROR_USR_USERNAME')); } if (\UsersPeer::doCount($criteria) > 0) { - throw new \Exception('usr_username. '.\G::LoadTranslation('ID_USERNAME_ALREADY_EXISTS', array('USER_ID' => $arrayData['USR_USERNAME']))); + throw new \Exception('usr_username. '.\G::LoadTranslation('ID_USERNAME_ALREADY_EXISTS', array('USER_ID' => $arrayUserData['USR_USERNAME']))); } if ($form['USR_USERNAME'] == '') { throw new \Exception('usr_name. '.\G::LoadTranslation('ID_MSG_ERROR_USR_USERNAME')); } else { - $aData['USR_USERNAME'] = $form['USR_USERNAME']; + $userData['USR_USERNAME'] = $form['USR_USERNAME']; } - $aData['USR_PASSWORD'] = $form['USR_PASSWORD']; + $userData['USR_PASSWORD'] = $form['USR_PASSWORD']; if ($form['USR_FIRSTNAME'] == '') { throw new \Exception('usr_firstname. '.\G::LoadTranslation('ID_MSG_ERROR_USR_FIRSTNAME')); } else { - $aData['USR_FIRSTNAME'] = $form['USR_FIRSTNAME']; + $userData['USR_FIRSTNAME'] = $form['USR_FIRSTNAME']; } if ($form['USR_LASTNAME'] == '') { throw new \Exception('usr_lastname. '.\G::LoadTranslation('ID_MSG_ERROR_USR_LASTNAME')); } else { - $aData['USR_LASTNAME'] = $form['USR_LASTNAME']; + $userData['USR_LASTNAME'] = $form['USR_LASTNAME']; } if ($form['USR_EMAIL'] == '') { throw new \Exception('Invalid value specified for usr_email, can not be null.'); @@ -303,7 +303,7 @@ class User 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']; + $userData['USR_EMAIL'] = $form['USR_EMAIL']; } } if ($form['USR_DUE_DATE'] == '') { @@ -314,22 +314,22 @@ class User if (checkdate($dueDate[1], $dueDate[2], $dueDate[0]) == false) { throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE')); } else { - $aData['USR_DUE_DATE'] = $form['USR_DUE_DATE']; + $userData['USR_DUE_DATE'] = $form['USR_DUE_DATE']; } } else { throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE')); } } - $aData['USR_CREATE_DATE'] = date('Y-m-d H:i:s'); - $aData['USR_UPDATE_DATE'] = date('Y-m-d H:i:s'); - $aData['USR_BIRTHDAY'] = date('Y-m-d'); - $aData['USR_AUTH_USER_DN'] = $form['USR_AUTH_USER_DN']; + $userData['USR_CREATE_DATE'] = date('Y-m-d H:i:s'); + $userData['USR_UPDATE_DATE'] = date('Y-m-d H:i:s'); + $userData['USR_BIRTHDAY'] = date('Y-m-d'); + $userData['USR_AUTH_USER_DN'] = $form['USR_AUTH_USER_DN']; $statusWF = $form['USR_STATUS']; if ($form['USR_STATUS'] == '') { throw new \Exception('Invalid value specified for usr_status, can not be null'); } else { if ($form['USR_STATUS'] == 'ACTIVE' || $form['USR_STATUS'] == 'INACTIVE' || $form['USR_STATUS'] == 'VACATION') { - $aData['USR_STATUS'] = $form['USR_STATUS']; + $userData['USR_STATUS'] = $form['USR_STATUS']; } else { throw new \Exception('usr_status. Invalid value for status field.'); } @@ -344,37 +344,37 @@ class User $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $oDataset->next(); if ($oDataset->getRow()) { - $aData['USR_ROLE'] = $form['USR_ROLE']; + $userData['USR_ROLE'] = $form['USR_ROLE']; } else { throw new \Exception('usr_role. Invalid value for role field.'); } } try { - if ($aData['USR_STATUS'] == 'ACTIVE') { - $aData['USR_STATUS'] = 1; + if ($userData['USR_STATUS'] == 'ACTIVE') { + $userData['USR_STATUS'] = 1; } - if ($aData['USR_STATUS'] == 'INACTIVE') { - $aData['USR_STATUS'] = 0; + if ($userData['USR_STATUS'] == 'INACTIVE') { + $userData['USR_STATUS'] = 0; } - $sUserUID = $this->createUser($aData); + $sUserUID = $this->createUser($userData); if ($form['USR_ROLE'] != '') { $this->assignRoleToUser($sUserUID, $form['USR_ROLE']); } } catch(Exception $oError) { throw new \Exception($oError->getMessage()); } - $aData['USR_STATUS'] = $statusWF; - $aData['USR_UID'] = $sUserUID; - $aData['USR_COUNTRY'] = $form['USR_COUNTRY']; - $aData['USR_CITY'] = $form['USR_CITY']; - $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']; - $aData['USR_POSITION'] = $form['USR_POSITION']; - $aData['USR_REPLACED_BY'] = $form['USR_REPLACED_BY']; + $userData['USR_STATUS'] = $statusWF; + $userData['USR_UID'] = $sUserUID; + $userData['USR_COUNTRY'] = $form['USR_COUNTRY']; + $userData['USR_CITY'] = $form['USR_CITY']; + $userData['USR_LOCATION'] = $form['USR_LOCATION']; + $userData['USR_ADDRESS'] = $form['USR_ADDRESS']; + $userData['USR_PHONE'] = $form['USR_PHONE']; + $userData['USR_ZIP_CODE'] = $form['USR_ZIP_CODE']; + $userData['USR_POSITION'] = $form['USR_POSITION']; + $userData['USR_REPLACED_BY'] = $form['USR_REPLACED_BY']; $oUser = new \Users(); - $oUser -> create( $aData ); + $oUser -> create( $userData ); if ((isset($form['USR_CALENDAR']))) { //Save Calendar ID for this user \G::LoadClass("calendar"); @@ -392,17 +392,17 @@ class User * Update User * * @param string $usrUid Unique id of User - * @param array $arrayData Data + * @param array $arrayUserData Data * @param string $usrLoggedUid Unique id of User logged * * return array Return data of the User updated */ - public function update($usrUid, $arrayData, $usrLoggedUid) + public function update($usrUid, $arrayUserData, $usrLoggedUid) { try { global $RBAC; - $arrayData = array_change_key_case($arrayData, CASE_UPPER); - $form = $arrayData; + $arrayUserData = array_change_key_case($arrayUserData, CASE_UPPER); + $form = $arrayUserData; $countPermission = 0; $permission = $this->loadUserRolePermission('PROCESSMAKER', $usrLoggedUid); foreach ($permission as $key => $value) { @@ -413,15 +413,15 @@ class User if ($countPermission != 1) { throw new \Exception('This user: '.$usrLoggedUid. ', can not update the data.'); } - if (isset($arrayData['USR_USERNAME'])) { + if (isset($arrayUserData['USR_USERNAME'])) { $criteria = new \Criteria(); $criteria->addSelectColumn(\UsersPeer::USR_USERNAME); - $criteria->add(\UsersPeer::USR_USERNAME, utf8_encode($arrayData['USR_USERNAME'])); + $criteria->add(\UsersPeer::USR_USERNAME, utf8_encode($arrayUserData['USR_USERNAME'])); if (\UsersPeer::doCount($criteria) > 0) { - throw new \Exception('usr_username. '.\G::LoadTranslation('ID_USERNAME_ALREADY_EXISTS', array('USER_ID' => $arrayData['USR_USERNAME']))); + throw new \Exception('usr_username. '.\G::LoadTranslation('ID_USERNAME_ALREADY_EXISTS', array('USER_ID' => $arrayUserData['USR_USERNAME']))); } if ($form['USR_USERNAME'] != '') { - $aData['USR_USERNAME'] = $form['USR_USERNAME']; + $userData['USR_USERNAME'] = $form['USR_USERNAME']; } } if (isset($usrUid)) { @@ -438,14 +438,14 @@ class User if (!isset($form['USR_AUTH_USER_DN'])) { $form['USR_AUTH_USER_DN'] = ''; } - $aData['USR_UID'] = $form['USR_UID']; + $userData['USR_UID'] = $form['USR_UID']; if (isset($form['USR_PASSWORD'])) { if ($form['USR_PASSWORD'] != '') { if ($form['USR_NEW_PASS'] != $form['USR_CNF_PASS']) { throw new \Exception('usr_new_pass or usr_cnf_pass. '.\G::LoadTranslation('ID_NEW_PASS_SAME_OLD_PASS')); } - $aData['USR_PASSWORD'] = $form['USR_PASSWORD']; + $userData['USR_PASSWORD'] = $form['USR_PASSWORD']; require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "UsersProperties.php"); $oUserProperty = new \UsersProperties(); $aUserProperty = $oUserProperty->loadOrCreateIfNotExists($form['USR_UID'], array('USR_PASSWORD_HISTORY' => serialize(array(md5($form['USR_PASSWORD']))))); @@ -517,41 +517,41 @@ class User } } if ($form['USR_FIRSTNAME'] != '') { - $aData['USR_FIRSTNAME'] = $form['USR_FIRSTNAME']; + $userData['USR_FIRSTNAME'] = $form['USR_FIRSTNAME']; } if ($form['USR_LASTNAME'] != '') { - $aData['USR_LASTNAME'] = $form['USR_LASTNAME']; + $userData['USR_LASTNAME'] = $form['USR_LASTNAME']; } - if (isset ($form['USR_EMAIL'])) { + if (isset($form['USR_EMAIL'])) { if ($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']; + $userData['USR_EMAIL'] = $form['USR_EMAIL']; } } } - if (isset ($form['USR_DUE_DATE'])) { + if (isset($form['USR_DUE_DATE'])) { if ($form['USR_DUE_DATE'] != '') { $dueDate = explode("-", $form['USR_DUE_DATE']); if (ctype_digit($dueDate[0])) { if (checkdate($dueDate[1], $dueDate[2], $dueDate[0]) == false) { throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE')); } else { - $aData['USR_DUE_DATE'] = $form['USR_DUE_DATE']; + $userData['USR_DUE_DATE'] = $form['USR_DUE_DATE']; } } else { throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE')); } } } - $aData['USR_UPDATE_DATE'] = date('Y-m-d H:i:s'); - if (isset ($form['USR_STATUS'])) { + $userData['USR_UPDATE_DATE'] = date('Y-m-d H:i:s'); + if (isset($form['USR_STATUS'])) { if ($form['USR_STATUS'] != '') { - $aData['USR_STATUS'] = $form['USR_STATUS']; + $userData['USR_STATUS'] = $form['USR_STATUS']; } } - if (isset ($form['USR_ROLE'])) { + if (isset($form['USR_ROLE'])) { if ($form['USR_ROLE'] != '') { require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Roles.php"); $oCriteria = new \Criteria('rbac'); @@ -560,86 +560,86 @@ class User $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $oDataset->next(); if ($oDataset->getRow()) { - $aData['USR_ROLE'] = $form['USR_ROLE']; + $userData['USR_ROLE'] = $form['USR_ROLE']; } else { throw new \Exception('usr_role. Invalid value for field.'); } - $this->updateUser($aData, $form['USR_ROLE']); + $this->updateUser($userData, $form['USR_ROLE']); } else { - $this->updateUser($aData); + $this->updateUser($userData); } } - if (isset ($form['USR_COUNTRY'])) { + if (isset($form['USR_COUNTRY'])) { 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'] = ''; + $userData['USR_COUNTRY'] = $form['USR_COUNTRY']; + $userData['USR_CITY'] = ''; + $userData['USR_LOCATION'] = ''; } } } - if (isset ($form['USR_CITY'])) { + if (isset($form['USR_CITY'])) { 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']; + $userData['USR_CITY'] = $form['USR_CITY']; } } } - if (isset ($form['USR_LOCATION'])) { + if (isset($form['USR_LOCATION'])) { 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']; + $userData['USR_LOCATION'] = $form['USR_LOCATION']; } } } - if (isset ($form['USR_ADDRESS'])) { - $aData['USR_ADDRESS'] = $form['USR_ADDRESS']; + if (isset($form['USR_ADDRESS'])) { + $userData['USR_ADDRESS'] = $form['USR_ADDRESS']; } - if (isset ($form['USR_PHONE'])) { - $aData['USR_PHONE'] = $form['USR_PHONE']; + if (isset($form['USR_PHONE'])) { + $userData['USR_PHONE'] = $form['USR_PHONE']; } - if (isset ($form['USR_FAX'])) { - $aData['USR_FAX'] = $form['USR_FAX']; + if (isset($form['USR_FAX'])) { + $userData['USR_FAX'] = $form['USR_FAX']; } - if (isset ($form['USR_CELLULAR'])) { - $aData['USR_CELLULAR'] = $form['USR_CELLULAR']; + if (isset($form['USR_CELLULAR'])) { + $userData['USR_CELLULAR'] = $form['USR_CELLULAR']; } - if (isset ($form['USR_ZIP_CODE'])) { - $aData['USR_ZIP_CODE'] = $form['USR_ZIP_CODE']; + if (isset($form['USR_ZIP_CODE'])) { + $userData['USR_ZIP_CODE'] = $form['USR_ZIP_CODE']; } - if (isset ($form['USR_POSITION'])) { - $aData['USR_POSITION'] = $form['USR_POSITION']; + if (isset($form['USR_POSITION'])) { + $userData['USR_POSITION'] = $form['USR_POSITION']; } - if (isset ($form['USR_ROLE'])) { + if (isset($form['USR_ROLE'])) { if ($form['USR_ROLE'] != '') { - $aData['USR_ROLE'] = $form['USR_ROLE']; + $userData['USR_ROLE'] = $form['USR_ROLE']; } } - if (isset ($form['USR_ROLE'])) { + if (isset($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']; + $userData['USR_REPLACED_BY'] = $form['USR_REPLACED_BY']; } } } if (isset($form['USR_AUTH_USER_DN'])) { - $aData['USR_AUTH_USER_DN'] = $form['USR_AUTH_USER_DN']; + $userData['USR_AUTH_USER_DN'] = $form['USR_AUTH_USER_DN']; } require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Users.php"); $oUser = new \Users(); - $oUser->update($aData); + $oUser->update($userData); $oCriteria = $this->getUser($usrUid); return $oCriteria; } catch (\Exception $e) { @@ -650,11 +650,11 @@ class User /** * Authenticate User * - * @param array $arrayData Data + * @param array $arrayUserData Data * * return array Return data of the User updated */ - public function authenticate($arrayData) + public function authenticate($arrayUserData) { try { From 5038b5a6993ffea36b40d6e5a68275b088dfff6c Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Mon, 5 May 2014 17:00:57 -0400 Subject: [PATCH 5/6] Se arregla bug en PM USER, PUT. Se cambia el nombre a la variable aData --- workflow/engine/src/ProcessMaker/BusinessModel/User.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/User.php b/workflow/engine/src/ProcessMaker/BusinessModel/User.php index fdb0760e6..41fe89cd3 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/User.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/User.php @@ -568,6 +568,10 @@ class User } else { $this->updateUser($userData); } + } else { + $user = new \Users(); + $dataUser = $user->load($usrUid); + $this->updateUser($userData, $dataUser['USR_ROLE']); } if (isset($form['USR_COUNTRY'])) { if ($form['USR_COUNTRY'] != '') { From 07abdd7a05175f86b4c92d19f75e2f486bc28707 Mon Sep 17 00:00:00 2001 From: Daniel Rojas Date: Tue, 6 May 2014 09:15:48 -0400 Subject: [PATCH 6/6] Se arregla bug en PM USER, PUT. Se agregan validaciones --- .../engine/src/ProcessMaker/BusinessModel/User.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/workflow/engine/src/ProcessMaker/BusinessModel/User.php b/workflow/engine/src/ProcessMaker/BusinessModel/User.php index 41fe89cd3..aab4759cf 100644 --- a/workflow/engine/src/ProcessMaker/BusinessModel/User.php +++ b/workflow/engine/src/ProcessMaker/BusinessModel/User.php @@ -516,11 +516,15 @@ class User $oUserProperty->update($aUserProperty); } } - if ($form['USR_FIRSTNAME'] != '') { - $userData['USR_FIRSTNAME'] = $form['USR_FIRSTNAME']; + if (isset($form['USR_FIRSTNAME'])) { + if ($form['USR_FIRSTNAME'] != '') { + $userData['USR_FIRSTNAME'] = $form['USR_FIRSTNAME']; + } } - if ($form['USR_LASTNAME'] != '') { - $userData['USR_LASTNAME'] = $form['USR_LASTNAME']; + if (isset($form['USR_LASTNAME'])) { + if ($form['USR_LASTNAME'] != '') { + $userData['USR_LASTNAME'] = $form['USR_LASTNAME']; + } } if (isset($form['USR_EMAIL'])) { if ($form['USR_EMAIL'] != '') {