Merge branch 'master' of bitbucket.org:colosa/processmaker

This commit is contained in:
Victor Saisa Lopez
2014-05-06 09:56:50 -04:00

View File

@@ -7,11 +7,11 @@ class User
/** /**
* Create User Uid * Create User Uid
* *
* @param array $arrayData Data * @param array $arrayUserData Data
* *
* return id * 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"); require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "RbacUsers.php");
$this->userObj = new \RbacUsers(); $this->userObj = new \RbacUsers();
@@ -29,11 +29,11 @@ class User
try { try {
$oRBACUsers = new \RbacUsers(); $oRBACUsers = new \RbacUsers();
do { do {
$aData['USR_UID'] = \G::generateUniqueID(); $userData['USR_UID'] = \G::generateUniqueID();
} while ($oRBACUsers->load($aData['USR_UID'])); } while ($oRBACUsers->load($userData['USR_UID']));
$oRBACUsers->fromArray($aData, \BasePeer::TYPE_FIELDNAME); $oRBACUsers->fromArray($userData, \BasePeer::TYPE_FIELDNAME);
$iResult = $oRBACUsers->save(); $iResult = $oRBACUsers->save();
return $aData['USR_UID']; return $userData['USR_UID'];
} catch (Exception $oError) { } catch (Exception $oError) {
$oConnection->rollback(); $oConnection->rollback();
throw($oError); throw($oError);
@@ -144,23 +144,23 @@ class User
* updated an user * updated an user
* *
* @access public * @access public
* @param array $aData * @param array $userData
* @param string $sRolCode * @param string $sRolCode
* @return void * @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"); require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "RbacUsers.php");
$this->userObj = new \RbacUsers(); $this->userObj = new \RbacUsers();
if (isset( $aData['USR_STATUS'] )) { if (isset( $userData['USR_STATUS'] )) {
if ($aData['USR_STATUS'] == 'ACTIVE') { if ($userData['USR_STATUS'] == 'ACTIVE') {
$aData['USR_STATUS'] = 1; $userData['USR_STATUS'] = 1;
} }
} }
$this->userObj->update( $aData ); $this->userObj->update( $userData );
if ($sRolCode != '') { if ($sRolCode != '') {
$this->removeRolesFromUser( $aData['USR_UID'] ); $this->removeRolesFromUser( $userData['USR_UID'] );
$this->assignRoleToUser( $aData['USR_UID'], $sRolCode ); $this->assignRoleToUser( $userData['USR_UID'], $sRolCode );
} }
} }
@@ -201,16 +201,16 @@ class User
/** /**
* Create User * Create User
* *
* @param array $arrayData Data * @param array $arrayUserData Data
* *
* return array Return data of the new User created * return array Return data of the new User created
*/ */
public function create($arrayData) public function create($arrayUserData)
{ {
try { try {
require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Users.php"); 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); $arrayUserData = array_change_key_case($arrayUserData, CASE_UPPER);
$form = $arrayData; $form = $arrayUserData;
if (array_key_exists('USR_REPLACED_BY', $form)) { if (array_key_exists('USR_REPLACED_BY', $form)) {
if ($form['USR_REPLACED_BY'] != '') { if ($form['USR_REPLACED_BY'] != '') {
$oReplacedBy = \UsersPeer::retrieveByPK($form['USR_REPLACED_BY']); $oReplacedBy = \UsersPeer::retrieveByPK($form['USR_REPLACED_BY']);
@@ -243,8 +243,8 @@ class User
} }
} }
} }
if (isset($arrayData['USR_UID'])) { if (isset($arrayUserData['USR_UID'])) {
$form['USR_UID'] = $arrayData['USR_UID']; $form['USR_UID'] = $arrayUserData['USR_UID'];
} else { } else {
$form['USR_UID'] = ''; $form['USR_UID'] = '';
} }
@@ -274,28 +274,28 @@ class User
$criteria = new \Criteria(); $criteria = new \Criteria();
$criteria->addSelectColumn(\UsersPeer::USR_USERNAME); $criteria->addSelectColumn(\UsersPeer::USR_USERNAME);
if (array_key_exists('USR_USERNAME', $form)) { 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 { } else {
throw new \Exception('usr_name. '.\G::LoadTranslation('ID_MSG_ERROR_USR_USERNAME')); throw new \Exception('usr_name. '.\G::LoadTranslation('ID_MSG_ERROR_USR_USERNAME'));
} }
if (\UsersPeer::doCount($criteria) > 0) { 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'] == '') { if ($form['USR_USERNAME'] == '') {
throw new \Exception('usr_name. '.\G::LoadTranslation('ID_MSG_ERROR_USR_USERNAME')); throw new \Exception('usr_name. '.\G::LoadTranslation('ID_MSG_ERROR_USR_USERNAME'));
} else { } 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'] == '') { if ($form['USR_FIRSTNAME'] == '') {
throw new \Exception('usr_firstname. '.\G::LoadTranslation('ID_MSG_ERROR_USR_FIRSTNAME')); throw new \Exception('usr_firstname. '.\G::LoadTranslation('ID_MSG_ERROR_USR_FIRSTNAME'));
} else { } else {
$aData['USR_FIRSTNAME'] = $form['USR_FIRSTNAME']; $userData['USR_FIRSTNAME'] = $form['USR_FIRSTNAME'];
} }
if ($form['USR_LASTNAME'] == '') { if ($form['USR_LASTNAME'] == '') {
throw new \Exception('usr_lastname. '.\G::LoadTranslation('ID_MSG_ERROR_USR_LASTNAME')); throw new \Exception('usr_lastname. '.\G::LoadTranslation('ID_MSG_ERROR_USR_LASTNAME'));
} else { } else {
$aData['USR_LASTNAME'] = $form['USR_LASTNAME']; $userData['USR_LASTNAME'] = $form['USR_LASTNAME'];
} }
if ($form['USR_EMAIL'] == '') { if ($form['USR_EMAIL'] == '') {
throw new \Exception('Invalid value specified for usr_email, can not be null.'); 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)) { if (!filter_var($form['USR_EMAIL'], FILTER_VALIDATE_EMAIL)) {
throw new \Exception('usr_email. '.\G::LoadTranslation('ID_INCORRECT_EMAIL')); throw new \Exception('usr_email. '.\G::LoadTranslation('ID_INCORRECT_EMAIL'));
} else { } else {
$aData['USR_EMAIL'] = $form['USR_EMAIL']; $userData['USR_EMAIL'] = $form['USR_EMAIL'];
} }
} }
if ($form['USR_DUE_DATE'] == '') { if ($form['USR_DUE_DATE'] == '') {
@@ -314,22 +314,22 @@ class User
if (checkdate($dueDate[1], $dueDate[2], $dueDate[0]) == false) { if (checkdate($dueDate[1], $dueDate[2], $dueDate[0]) == false) {
throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE')); throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE'));
} else { } else {
$aData['USR_DUE_DATE'] = $form['USR_DUE_DATE']; $userData['USR_DUE_DATE'] = $form['USR_DUE_DATE'];
} }
} else { } else {
throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE')); throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE'));
} }
} }
$aData['USR_CREATE_DATE'] = date('Y-m-d H:i:s'); $userData['USR_CREATE_DATE'] = date('Y-m-d H:i:s');
$aData['USR_UPDATE_DATE'] = date('Y-m-d H:i:s'); $userData['USR_UPDATE_DATE'] = date('Y-m-d H:i:s');
$aData['USR_BIRTHDAY'] = date('Y-m-d'); $userData['USR_BIRTHDAY'] = date('Y-m-d');
$aData['USR_AUTH_USER_DN'] = $form['USR_AUTH_USER_DN']; $userData['USR_AUTH_USER_DN'] = $form['USR_AUTH_USER_DN'];
$statusWF = $form['USR_STATUS']; $statusWF = $form['USR_STATUS'];
if ($form['USR_STATUS'] == '') { if ($form['USR_STATUS'] == '') {
throw new \Exception('Invalid value specified for usr_status, can not be null'); throw new \Exception('Invalid value specified for usr_status, can not be null');
} else { } else {
if ($form['USR_STATUS'] == 'ACTIVE' || $form['USR_STATUS'] == 'INACTIVE' || $form['USR_STATUS'] == 'VACATION') { 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 { } else {
throw new \Exception('usr_status. Invalid value for status field.'); throw new \Exception('usr_status. Invalid value for status field.');
} }
@@ -344,37 +344,37 @@ class User
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); $oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC);
$oDataset->next(); $oDataset->next();
if ($oDataset->getRow()) { if ($oDataset->getRow()) {
$aData['USR_ROLE'] = $form['USR_ROLE']; $userData['USR_ROLE'] = $form['USR_ROLE'];
} else { } else {
throw new \Exception('usr_role. Invalid value for role field.'); throw new \Exception('usr_role. Invalid value for role field.');
} }
} }
try { try {
if ($aData['USR_STATUS'] == 'ACTIVE') { if ($userData['USR_STATUS'] == 'ACTIVE') {
$aData['USR_STATUS'] = 1; $userData['USR_STATUS'] = 1;
} }
if ($aData['USR_STATUS'] == 'INACTIVE') { if ($userData['USR_STATUS'] == 'INACTIVE') {
$aData['USR_STATUS'] = 0; $userData['USR_STATUS'] = 0;
} }
$sUserUID = $this->createUser($aData); $sUserUID = $this->createUser($userData);
if ($form['USR_ROLE'] != '') { if ($form['USR_ROLE'] != '') {
$this->assignRoleToUser($sUserUID, $form['USR_ROLE']); $this->assignRoleToUser($sUserUID, $form['USR_ROLE']);
} }
} catch(Exception $oError) { } catch(Exception $oError) {
throw new \Exception($oError->getMessage()); throw new \Exception($oError->getMessage());
} }
$aData['USR_STATUS'] = $statusWF; $userData['USR_STATUS'] = $statusWF;
$aData['USR_UID'] = $sUserUID; $userData['USR_UID'] = $sUserUID;
$aData['USR_COUNTRY'] = $form['USR_COUNTRY']; $userData['USR_COUNTRY'] = $form['USR_COUNTRY'];
$aData['USR_CITY'] = $form['USR_CITY']; $userData['USR_CITY'] = $form['USR_CITY'];
$aData['USR_LOCATION'] = $form['USR_LOCATION']; $userData['USR_LOCATION'] = $form['USR_LOCATION'];
$aData['USR_ADDRESS'] = $form['USR_ADDRESS']; $userData['USR_ADDRESS'] = $form['USR_ADDRESS'];
$aData['USR_PHONE'] = $form['USR_PHONE']; $userData['USR_PHONE'] = $form['USR_PHONE'];
$aData['USR_ZIP_CODE'] = $form['USR_ZIP_CODE']; $userData['USR_ZIP_CODE'] = $form['USR_ZIP_CODE'];
$aData['USR_POSITION'] = $form['USR_POSITION']; $userData['USR_POSITION'] = $form['USR_POSITION'];
$aData['USR_REPLACED_BY'] = $form['USR_REPLACED_BY']; $userData['USR_REPLACED_BY'] = $form['USR_REPLACED_BY'];
$oUser = new \Users(); $oUser = new \Users();
$oUser -> create( $aData ); $oUser -> create( $userData );
if ((isset($form['USR_CALENDAR']))) { if ((isset($form['USR_CALENDAR']))) {
//Save Calendar ID for this user //Save Calendar ID for this user
\G::LoadClass("calendar"); \G::LoadClass("calendar");
@@ -392,17 +392,17 @@ class User
* Update User * Update User
* *
* @param string $usrUid Unique id of User * @param string $usrUid Unique id of User
* @param array $arrayData Data * @param array $arrayUserData Data
* @param string $usrLoggedUid Unique id of User logged * @param string $usrLoggedUid Unique id of User logged
* *
* return array Return data of the User updated * return array Return data of the User updated
*/ */
public function update($usrUid, $arrayData, $usrLoggedUid) public function update($usrUid, $arrayUserData, $usrLoggedUid)
{ {
try { try {
global $RBAC; global $RBAC;
$arrayData = array_change_key_case($arrayData, CASE_UPPER); $arrayUserData = array_change_key_case($arrayUserData, CASE_UPPER);
$form = $arrayData; $form = $arrayUserData;
$countPermission = 0; $countPermission = 0;
$permission = $this->loadUserRolePermission('PROCESSMAKER', $usrLoggedUid); $permission = $this->loadUserRolePermission('PROCESSMAKER', $usrLoggedUid);
foreach ($permission as $key => $value) { foreach ($permission as $key => $value) {
@@ -413,11 +413,16 @@ class User
if ($countPermission != 1) { if ($countPermission != 1) {
throw new \Exception('This user: '.$usrLoggedUid. ', can not update the data.'); throw new \Exception('This user: '.$usrLoggedUid. ', can not update the data.');
} }
$criteria = new \Criteria(); if (isset($arrayUserData['USR_USERNAME'])) {
$criteria->addSelectColumn(\UsersPeer::USR_USERNAME); $criteria = new \Criteria();
$criteria->add(\UsersPeer::USR_USERNAME, utf8_encode($arrayData['USR_USERNAME'])); $criteria->addSelectColumn(\UsersPeer::USR_USERNAME);
if (\UsersPeer::doCount($criteria) > 0) { $criteria->add(\UsersPeer::USR_USERNAME, utf8_encode($arrayUserData['USR_USERNAME']));
throw new \Exception('usr_username. '.\G::LoadTranslation('ID_USERNAME_ALREADY_EXISTS', array('USER_ID' => $arrayData['USR_USERNAME']))); if (\UsersPeer::doCount($criteria) > 0) {
throw new \Exception('usr_username. '.\G::LoadTranslation('ID_USERNAME_ALREADY_EXISTS', array('USER_ID' => $arrayUserData['USR_USERNAME'])));
}
if ($form['USR_USERNAME'] != '') {
$userData['USR_USERNAME'] = $form['USR_USERNAME'];
}
} }
if (isset($usrUid)) { if (isset($usrUid)) {
$form['USR_UID'] = $usrUid; $form['USR_UID'] = $usrUid;
@@ -433,23 +438,21 @@ class User
if (!isset($form['USR_AUTH_USER_DN'])) { if (!isset($form['USR_AUTH_USER_DN'])) {
$form['USR_AUTH_USER_DN'] = ''; $form['USR_AUTH_USER_DN'] = '';
} }
$aData['USR_UID'] = $form['USR_UID']; $userData['USR_UID'] = $form['USR_UID'];
if ($form['USR_USERNAME'] != '') {
$aData['USR_USERNAME'] = $form['USR_USERNAME'];
}
if (isset($form['USR_PASSWORD'])) { if (isset($form['USR_PASSWORD'])) {
if ($form['USR_PASSWORD'] != '') { if ($form['USR_PASSWORD'] != '') {
if ($form['USR_NEW_PASS'] != $form['USR_CNF_PASS']) { 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')); 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"); require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "UsersProperties.php");
$oUserProperty = new \UsersProperties(); $oUserProperty = new \UsersProperties();
$aUserProperty = $oUserProperty->loadOrCreateIfNotExists($form['USR_UID'], array('USR_PASSWORD_HISTORY' => serialize(array(md5($form['USR_PASSWORD']))))); $aUserProperty = $oUserProperty->loadOrCreateIfNotExists($form['USR_UID'], array('USR_PASSWORD_HISTORY' => serialize(array(md5($form['USR_PASSWORD'])))));
$memKey = 'rbacSession' . session_id(); $memKey = 'rbacSession' . session_id();
$memcache = & \PMmemcached::getSingleton(defined('SYS_SYS') ? SYS_SYS : '' ); $memcache = & \PMmemcached::getSingleton(defined('SYS_SYS') ? SYS_SYS : '' );
if (($RBAC->aUserInfo = $memcache->get($memKey)) === false) { if (($RBAC->aUserInfo = $memcache->get($memKey)) === false) {
$this->loadUserRolePermission($RBAC->sSystem, $usrLoggedUid); $this->loadUserRolePermission('PROCESSMAKER', $usrLoggedUid);
$memcache->set($memKey, $RBAC->aUserInfo, \PMmemcached::EIGHT_HOURS); $memcache->set($memKey, $RBAC->aUserInfo, \PMmemcached::EIGHT_HOURS);
} }
if ($RBAC->aUserInfo['PROCESSMAKER']['ROLE']['ROL_CODE'] == 'PROCESSMAKER_ADMIN') { if ($RBAC->aUserInfo['PROCESSMAKER']['ROLE']['ROL_CODE'] == 'PROCESSMAKER_ADMIN') {
@@ -513,98 +516,138 @@ class User
$oUserProperty->update($aUserProperty); $oUserProperty->update($aUserProperty);
} }
} }
if ($form['USR_FIRSTNAME'] != '') { if (isset($form['USR_FIRSTNAME'])) {
$aData['USR_FIRSTNAME'] = $form['USR_FIRSTNAME']; if ($form['USR_FIRSTNAME'] != '') {
} $userData['USR_FIRSTNAME'] = $form['USR_FIRSTNAME'];
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 ($form['USR_DUE_DATE'] != '') { if (isset($form['USR_LASTNAME'])) {
$dueDate = explode("-", $form['USR_DUE_DATE']); if ($form['USR_LASTNAME'] != '') {
if (ctype_digit($dueDate[0])) { $userData['USR_LASTNAME'] = $form['USR_LASTNAME'];
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_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 { } else {
$aData['USR_DUE_DATE'] = $form['USR_DUE_DATE']; $userData['USR_EMAIL'] = $form['USR_EMAIL'];
} }
} 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_DUE_DATE'])) {
if ($form['USR_STATUS'] != '') { if ($form['USR_DUE_DATE'] != '') {
$aData['USR_STATUS'] = $form['USR_STATUS']; $dueDate = explode("-", $form['USR_DUE_DATE']);
} if (ctype_digit($dueDate[0])) {
if ($form['USR_ROLE'] != '') { if (checkdate($dueDate[1], $dueDate[2], $dueDate[0]) == false) {
require_once (PATH_RBAC_HOME . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Roles.php"); throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE'));
$oCriteria = new \Criteria('rbac'); } else {
$oCriteria->add(\RolesPeer::ROL_CODE, $form['USR_ROLE']); $userData['USR_DUE_DATE'] = $form['USR_DUE_DATE'];
$oDataset = \RolesPeer::doSelectRS($oCriteria); }
$oDataset->setFetchmode(\ResultSet::FETCHMODE_ASSOC); } else {
$oDataset->next(); throw new \Exception('usr_due_date. '.\G::LoadTranslation('ID_MSG_ERROR_DUE_DATE'));
if ($oDataset->getRow()) { }
$aData['USR_ROLE'] = $form['USR_ROLE']; }
} else { }
throw new \Exception('usr_role. Invalid value for field.'); $userData['USR_UPDATE_DATE'] = date('Y-m-d H:i:s');
if (isset($form['USR_STATUS'])) {
if ($form['USR_STATUS'] != '') {
$userData['USR_STATUS'] = $form['USR_STATUS'];
}
}
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()) {
$userData['USR_ROLE'] = $form['USR_ROLE'];
} else {
throw new \Exception('usr_role. Invalid value for field.');
}
$this->updateUser($userData, $form['USR_ROLE']);
} else {
$this->updateUser($userData);
} }
$this->updateUser($aData, $form['USR_ROLE']);
} else { } else {
$this->updateUser($aData); $user = new \Users();
$dataUser = $user->load($usrUid);
$this->updateUser($userData, $dataUser['USR_ROLE']);
} }
if ($form['USR_COUNTRY'] != '') { if (isset($form['USR_COUNTRY'])) {
$oReplacedBy = \IsoCountryPeer::retrieveByPK($form['USR_COUNTRY']); if ($form['USR_COUNTRY'] != '') {
if (is_null($oReplacedBy)) { $oReplacedBy = \IsoCountryPeer::retrieveByPK($form['USR_COUNTRY']);
throw new \Exception('Invalid value for usr_country: '.$form['USR_COUNTRY']); if (is_null($oReplacedBy)) {
} else { throw new \Exception('Invalid value for usr_country: '.$form['USR_COUNTRY']);
$aData['USR_COUNTRY'] = $form['USR_COUNTRY']; } else {
$aData['USR_CITY'] = ''; $userData['USR_COUNTRY'] = $form['USR_COUNTRY'];
$aData['USR_LOCATION'] = ''; $userData['USR_CITY'] = '';
$userData['USR_LOCATION'] = '';
}
} }
} }
if ($form['USR_CITY'] != '') { if (isset($form['USR_CITY'])) {
$oCity = \IsoSubdivisionPeer::retrieveByPK($form['USR_COUNTRY'], $form['USR_CITY']); if ($form['USR_CITY'] != '') {
if (is_null($oCity)) { $oCity = \IsoSubdivisionPeer::retrieveByPK($form['USR_COUNTRY'], $form['USR_CITY']);
throw new \Exception('Invalid value for usr_city: '.$form['USR_CITY']); if (is_null($oCity)) {
} else { throw new \Exception('Invalid value for usr_city: '.$form['USR_CITY']);
$aData['USR_CITY'] = $form['USR_CITY']; } else {
$userData['USR_CITY'] = $form['USR_CITY'];
}
} }
} }
if ($form['USR_LOCATION'] != '') { if (isset($form['USR_LOCATION'])) {
$oLocation = \IsoLocationPeer::retrieveByPK($form['USR_COUNTRY'], $form['USR_LOCATION']); if ($form['USR_LOCATION'] != '') {
if (is_null($oLocation)) { $oLocation = \IsoLocationPeer::retrieveByPK($form['USR_COUNTRY'], $form['USR_LOCATION']);
throw new \Exception('Invalid value for usr_location: '.$form['USR_LOCATION']); if (is_null($oLocation)) {
} else { throw new \Exception('Invalid value for usr_location: '.$form['USR_LOCATION']);
$aData['USR_LOCATION'] = $form['USR_LOCATION']; } else {
$userData['USR_LOCATION'] = $form['USR_LOCATION'];
}
} }
} }
$aData['USR_ADDRESS'] = $form['USR_ADDRESS']; if (isset($form['USR_ADDRESS'])) {
$aData['USR_PHONE'] = $form['USR_PHONE']; $userData['USR_ADDRESS'] = $form['USR_ADDRESS'];
$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'] != '') { if (isset($form['USR_PHONE'])) {
$oReplacedBy = \UsersPeer::retrieveByPK($form['USR_REPLACED_BY']); $userData['USR_PHONE'] = $form['USR_PHONE'];
if (is_null($oReplacedBy)) { }
throw new \Exception('usr_replaced_by:'.$form['USR_REPLACED_BY'].' '.\G::LoadTranslation('ID_AUTHENTICATION_SOURCE_INVALID')); if (isset($form['USR_FAX'])) {
} else { $userData['USR_FAX'] = $form['USR_FAX'];
$aData['USR_REPLACED_BY'] = $form['USR_REPLACED_BY']; }
if (isset($form['USR_CELLULAR'])) {
$userData['USR_CELLULAR'] = $form['USR_CELLULAR'];
}
if (isset($form['USR_ZIP_CODE'])) {
$userData['USR_ZIP_CODE'] = $form['USR_ZIP_CODE'];
}
if (isset($form['USR_POSITION'])) {
$userData['USR_POSITION'] = $form['USR_POSITION'];
}
if (isset($form['USR_ROLE'])) {
if ($form['USR_ROLE'] != '') {
$userData['USR_ROLE'] = $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 {
$userData['USR_REPLACED_BY'] = $form['USR_REPLACED_BY'];
}
} }
} }
if (isset($form['USR_AUTH_USER_DN'])) { 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"); require_once (PATH_TRUNK . "workflow" . PATH_SEP . "engine" . PATH_SEP . "classes" . PATH_SEP . "model" . PATH_SEP . "Users.php");
$oUser = new \Users(); $oUser = new \Users();
$oUser->update($aData); $oUser->update($userData);
$oCriteria = $this->getUser($usrUid); $oCriteria = $this->getUser($usrUid);
return $oCriteria; return $oCriteria;
} catch (\Exception $e) { } catch (\Exception $e) {
@@ -615,11 +658,11 @@ class User
/** /**
* Authenticate User * Authenticate User
* *
* @param array $arrayData Data * @param array $arrayUserData Data
* *
* return array Return data of the User updated * return array Return data of the User updated
*/ */
public function authenticate($arrayData) public function authenticate($arrayUserData)
{ {
try { try {