Merge pull request #2193 from marcoAntonioNina/BUG-13661
BUG-13661 A user is still able to login to ProcessMaker even... SOLVED
This commit is contained in:
@@ -59,6 +59,7 @@ class RbacUsers extends BaseRbacUsers
|
||||
* -2: password errado
|
||||
* -3: usuario inactivo
|
||||
* -4: usuario vencido
|
||||
* -6: role inactivo
|
||||
* n : uid de usuario
|
||||
*/
|
||||
public function verifyLogin($sUsername, $sPassword)
|
||||
@@ -89,6 +90,10 @@ class RbacUsers extends BaseRbacUsers
|
||||
if ($aFields['USR_STATUS'] != 1) {
|
||||
return -3;
|
||||
}
|
||||
$role = $this->getUserRole($aFields['USR_UID']);
|
||||
if ($role['ROL_STATUS'] == 0) {
|
||||
return -6;
|
||||
}
|
||||
return $aFields['USR_UID'];
|
||||
} else {
|
||||
return -2;
|
||||
@@ -293,6 +298,28 @@ class RbacUsers extends BaseRbacUsers
|
||||
}
|
||||
return $aUsers;
|
||||
}
|
||||
|
||||
public function getUserRole($UsrUid)
|
||||
{
|
||||
$con = Propel::getConnection(UsersRolesPeer::DATABASE_NAME);
|
||||
try {
|
||||
$c = new Criteria( 'rbac' );
|
||||
$c->clearSelectColumns();
|
||||
$c->addSelectColumn ( RolesPeer::ROL_UID );
|
||||
$c->addSelectColumn ( RolesPeer::ROL_CODE );
|
||||
$c->addSelectColumn ( RolesPeer::ROL_STATUS );
|
||||
$c->addJoin ( UsersRolesPeer::ROL_UID, RolesPeer::ROL_UID );
|
||||
$c->add ( UsersRolesPeer::USR_UID, $UsrUid );
|
||||
$rs = UsersRolesPeer::doSelectRs( $c );
|
||||
$rs->setFetchmode (ResultSet::FETCHMODE_ASSOC);
|
||||
$rs->next();
|
||||
$row = $rs->getRow();
|
||||
return $row;
|
||||
}
|
||||
catch (Exception $oError) {
|
||||
throw($oError);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Users
|
||||
|
||||
@@ -81,6 +81,9 @@ try {
|
||||
case -5:
|
||||
$errLabel = 'ID_AUTHENTICATION_SOURCE_INVALID';
|
||||
break;
|
||||
case -6:
|
||||
$errLabel = 'ID_ROLE_INACTIVE';
|
||||
break;
|
||||
}
|
||||
|
||||
//to avoid empty string in user field. This will avoid a weird message "this row doesn't exist"
|
||||
|
||||
@@ -160,7 +160,7 @@ switch ($_POST['action']) {
|
||||
$aData['USR_AUTH_USER_DN'] = $form['USR_AUTH_USER_DN'];
|
||||
//fixing bug in inactive user when the admin create a new user.
|
||||
$statusWF = $form['USR_STATUS'];
|
||||
$aData['USR_STATUS'] = $form['USR_STATUS'] == 'ACTIVE' ? 1 : 0;
|
||||
$aData['USR_STATUS'] = $form['USR_STATUS'] ;//== 'ACTIVE' ? 1 : 0;
|
||||
try {
|
||||
$sUserUID = $RBAC->createUser($aData, $form['USR_ROLE']);
|
||||
} catch(Exception $oError) {
|
||||
|
||||
Reference in New Issue
Block a user