Add catch in create user and change propel to elloquent

This commit is contained in:
Brayan Pereyra
2025-10-08 01:50:43 +00:00
parent c96920a30a
commit 6211c48e44
2 changed files with 66 additions and 82 deletions

View File

@@ -743,7 +743,7 @@ function initWorkspace($workspace) {
define('PATH_IMAGES_ENVIRONMENT_FILES', PATH_DATA_SITE . 'usersFiles' . PATH_SEP); define('PATH_IMAGES_ENVIRONMENT_FILES', PATH_DATA_SITE . 'usersFiles' . PATH_SEP);
define('PATH_IMAGES_ENVIRONMENT_USERS', PATH_DATA_SITE . 'usersPhotographies' . PATH_SEP); define('PATH_IMAGES_ENVIRONMENT_USERS', PATH_DATA_SITE . 'usersPhotographies' . PATH_SEP);
if (is_file(PATH_DATA_SITE . PATH_SEP . '.server_info')) { if (is_file(PATH_DATA_SITE . '.server_info')) {
$SERVER_INFO = file_get_contents(PATH_DATA_SITE . PATH_SEP . '.server_info'); $SERVER_INFO = file_get_contents(PATH_DATA_SITE . PATH_SEP . '.server_info');
$SERVER_INFO = unserialize($SERVER_INFO); $SERVER_INFO = unserialize($SERVER_INFO);
@@ -757,7 +757,7 @@ function initWorkspace($workspace) {
define('REQUEST_SCHEME', $SERVER_INFO['REQUEST_SCHEME']); define('REQUEST_SCHEME', $SERVER_INFO['REQUEST_SCHEME']);
} }
} else { } else {
CLI::logging('WARNING! No server info found!', 'red'); CLI::logging('WARNING! No server info found!', null, 'red');
} }
//load Processmaker translations //load Processmaker translations
Bootstrap::LoadTranslationObject(SYS_LANG); Bootstrap::LoadTranslationObject(SYS_LANG);

View File

@@ -1050,34 +1050,17 @@ class LdapSource
public function deactivateUser($userUid) public function deactivateUser($userUid)
{ {
if (!class_exists('RbacUsers')) { $rbacUser = new RbacUsers();
require_once(PATH_RBAC . 'model/RbacUsers.php'); $rbacUser->updateData(
} ['USR_STATUS' => '0'],
[['USR_USERNAME', '=', $userUid]]
);
$con = Propel::getConnection(RbacUsersPeer::DATABASE_NAME); $users = new User();
// select set $users->updateData(
$c1 = new Criteria('rbac'); ['USR_STATUS' => 'INACTIVE', 'DEP_UID' => ''],
$c1->add(RbacUsersPeer::USR_USERNAME, $userUid); [['USR_USERNAME', '=', $userUid]]
// update set );
$c2 = new Criteria('rbac');
$c2->add(RbacUsersPeer::USR_STATUS, '0');
BasePeer::doUpdate($c1, $c2, $con);
if (!class_exists('Users')) {
require_once('classes/model/Users.php');
}
$con = Propel::getConnection(UsersPeer::DATABASE_NAME);
// select set
$c1 = new Criteria('workflow');
$c1->add(UsersPeer::USR_USERNAME, $userUid);
// update set
$c2 = new Criteria('workflow');
$c2->add(UsersPeer::USR_STATUS, 'INACTIVE');
$c2->add(UsersPeer::DEP_UID, '');
BasePeer::doUpdate($c1, $c2, $con);
} }
public function userIsTerminated($userUid, $sOuTerminated) public function userIsTerminated($userUid, $sOuTerminated)
@@ -1091,7 +1074,6 @@ class LdapSource
break; break;
} }
} }
return $terminated; return $terminated;
} }
@@ -1762,54 +1744,58 @@ class LdapSource
public function createUserAndActivate($user, $depUid) public function createUserAndActivate($user, $depUid)
{ {
$rbac = RBAC::getSingleton(); try {
$rbac = RBAC::getSingleton();
if ($rbac->userObj == null) { if ($rbac->userObj == null) {
$rbac->userObj = new RbacUsersModel(); $rbac->userObj = new RbacUsersModel();
}
if ($rbac->rolesObj == null) {
$rbac->rolesObj = new RolesModel();
}
if ($rbac->usersRolesObj == null) {
$rbac->usersRolesObj = new UsersRolesModel();
}
$sUsername = $user['sUsername'];
$sFullname = $user['sFullname'];
$sFirstname = $user['sFirstname'];
$sLastname = $user['sLastname'];
$sEmail = $user['sEmail'];
$sDn = $user['sDN'];
$usrRole = empty($user['usrRole']) ? 'LURANA_OPERATOR' : $user['usrRole'];
$data = [];
$data['USR_USERNAME'] = $sUsername;
$data["USR_PASSWORD"] = "00000000000000000000000000000000";
$data['USR_FIRSTNAME'] = $sFirstname;
$data['USR_LASTNAME'] = $sLastname;
$data['USR_EMAIL'] = $sEmail;
$data['USR_DUE_DATE'] = date('Y-m-d', mktime(0, 0, 0, date('m'), date('d'), date('Y') + 2));
$data['USR_CREATE_DATE'] = date('Y-m-d H:i:s');
$data['USR_UPDATE_DATE'] = date('Y-m-d H:i:s');
$data['USR_BIRTHDAY'] = date('Y-m-d');
$data['USR_STATUS'] = 1;
$data['USR_AUTH_TYPE'] = 'ldapadvanced';
$data['UID_AUTH_SOURCE'] = $this->authSourceUid;
$data['USR_AUTH_USER_DN'] = $sDn;
$userUid = $rbac->createUser($data, $usrRole);
$data['USR_STATUS'] = 'ACTIVE';
$data['USR_UID'] = $userUid;
$data['DEP_UID'] = $depUid;
$data['USR_ROLE'] = $usrRole;
$users = new Users();
$users->create($data);
return $userUid;
} catch (Exception $errorException) {
throw $errorException;
} }
if ($rbac->rolesObj == null) {
$rbac->rolesObj = new RolesModel();
}
if ($rbac->usersRolesObj == null) {
$rbac->usersRolesObj = new UsersRolesModel();
}
$sUsername = $user['sUsername'];
$sFullname = $user['sFullname'];
$sFirstname = $user['sFirstname'];
$sLastname = $user['sLastname'];
$sEmail = $user['sEmail'];
$sDn = $user['sDN'];
$usrRole = empty($user['usrRole']) ? 'LURANA_OPERATOR' : $user['usrRole'];
$data = [];
$data['USR_USERNAME'] = $sUsername;
$data["USR_PASSWORD"] = "00000000000000000000000000000000";
$data['USR_FIRSTNAME'] = $sFirstname;
$data['USR_LASTNAME'] = $sLastname;
$data['USR_EMAIL'] = $sEmail;
$data['USR_DUE_DATE'] = date('Y-m-d', mktime(0, 0, 0, date('m'), date('d'), date('Y') + 2));
$data['USR_CREATE_DATE'] = date('Y-m-d H:i:s');
$data['USR_UPDATE_DATE'] = date('Y-m-d H:i:s');
$data['USR_BIRTHDAY'] = date('Y-m-d');
$data['USR_STATUS'] = 1;
$data['USR_AUTH_TYPE'] = 'ldapadvanced';
$data['UID_AUTH_SOURCE'] = $this->authSourceUid;
$data['USR_AUTH_USER_DN'] = $sDn;
$userUid = $rbac->createUser($data, $usrRole);
$data['USR_STATUS'] = 'ACTIVE';
$data['USR_UID'] = $userUid;
$data['DEP_UID'] = $depUid;
$data['USR_ROLE'] = $usrRole;
$users = new Users();
$users->create($data);
return $userUid;
} }
public function getDepUidIfExistsDN($currentDN) public function getDepUidIfExistsDN($currentDN)
@@ -2374,11 +2360,8 @@ class LdapSource
public function clearManager($usersUIDs) public function clearManager($usersUIDs)
{ {
try { try {
$criteriaSet = new Criteria('workflow'); $user = new User();
$criteriaSet->add(UsersPeer::USR_REPORTS_TO, ''); $user->updateDataFromListUsersUids(['USR_REPORTS_TO' => ''], $usersUIDs);
$criteriaWhere = new Criteria('workflow');
$criteriaWhere->add(UsersPeer::USR_UID, $usersUIDs, Criteria::IN);
BasePeer::doUpdate($criteriaWhere, $criteriaSet, Propel::getConnection('workflow'));
} catch (Exception $error) { } catch (Exception $error) {
$this->log($this->ldapcnn, $error->getMessage()); $this->log($this->ldapcnn, $error->getMessage());
} }
@@ -2421,7 +2404,8 @@ class LdapSource
$p = (int) (($count * 100) / $total); $p = (int) (($count * 100) / $total);
$n = (int) ($p / 2); $n = (int) ($p / 2);
return "[" . str_repeat("|", $n) . str_repeat(" ", 50 - $n) . "] $p%"; $times = ((50 - (int)$n) < 0) ? 0 : (50 - (int)$n);
return "[" . str_repeat("|", $n) . str_repeat(" ", $times) . "] $p%";
} catch (Exception $e) { } catch (Exception $e) {
throw $e; throw $e;
} }