BUG 15195 "User appear more than once in the..." SOLVED
- User appear more than once in the Process Supervisor window - Problema resuelto, cuando se elimina a un usuario por ADMIN>USERS>Users, este usuario puede se eliminado sin restricciones aunque el usuario este asignado como supervisor de un proceso lo cual no es correcto. Se hace una validacion que verifica si el usuario esta asignado como supervisor le saldra un mensaje de confirmacion que indica si deseea eliminar el usuario de todas maneras. Si la respuesta es Si, se eliminara de la lista de usuarios y de la lista de usuarios asignados como supervisores.
This commit is contained in:
@@ -210,6 +210,14 @@ try {
|
||||
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_UID, $UID );
|
||||
$criteria->add( DashletInstancePeer::DAS_INS_OWNER_TYPE , 'USER');
|
||||
DashletInstancePeer::doDelete( $criteria );
|
||||
|
||||
//Delete users as supervisor
|
||||
$criteria = new Criteria("workflow");
|
||||
|
||||
$criteria->add(ProcessUserPeer::USR_UID, $UID, Criteria::EQUAL);
|
||||
$criteria->add(ProcessUserPeer::PU_TYPE, "SUPERVISOR", Criteria::EQUAL);
|
||||
|
||||
ProcessUserPeer::doDelete($criteria);
|
||||
break;
|
||||
case 'changeUserStatus':
|
||||
$response = new stdclass();
|
||||
@@ -390,9 +398,9 @@ try {
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_FIRSTNAME);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_LASTNAME);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_EMAIL);
|
||||
|
||||
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_ROLE);
|
||||
|
||||
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_DUE_DATE);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_STATUS);
|
||||
$oCriteria->addSelectColumn(UsersPeer::USR_UX);
|
||||
@@ -440,7 +448,7 @@ try {
|
||||
$uRole = Array();
|
||||
while ($oDataset->next()) {
|
||||
$row = $oDataset->getRow();
|
||||
|
||||
|
||||
try {
|
||||
$uRole = $oRoles->loadByCode($row['USR_ROLE']);
|
||||
} catch (exception $oError) {
|
||||
@@ -456,7 +464,7 @@ try {
|
||||
$row['DEP_TITLE'] = isset($aDepart[$row['USR_UID']]) ? $aDepart[$row['USR_UID']] : '';
|
||||
$row['USR_UX'] = isset($uxList[$row['USR_UX']]) ? $uxList[$row['USR_UX']] : $uxList['NORMAL'];
|
||||
$row['USR_AUTH_SOURCE'] = isset($aAuthSources[$row['USR_UID']]) ? $aAuthSources[$row['USR_UID']] : 'ProcessMaker (MYSQL)';
|
||||
|
||||
|
||||
$rows[] = $row;
|
||||
}
|
||||
|
||||
@@ -511,6 +519,29 @@ try {
|
||||
$misc['REPLACED_NAME'] = $replaced_by;
|
||||
echo '{success: true, userdata: ' . G::json_encode($data) . ', cases: ' . G::json_encode($aCount) . ', misc: ' . G::json_encode($misc) . '}';
|
||||
break;
|
||||
|
||||
case "verifyIfUserAssignedAsSupervisor":
|
||||
$supervisorUserUid = $_POST["supervisorUserUid"];
|
||||
$message = "OK";
|
||||
|
||||
$criteria = new Criteria("workflow");
|
||||
|
||||
$criteria->addSelectColumn(ProcessUserPeer::PU_UID);
|
||||
$criteria->add(ProcessUserPeer::USR_UID, $supervisorUserUid, Criteria::EQUAL);
|
||||
$criteria->add(ProcessUserPeer::PU_TYPE, "SUPERVISOR", Criteria::EQUAL);
|
||||
|
||||
$rsCriteria = ProcessUserPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
if($rsCriteria->next() != 0) {
|
||||
$message = "ERROR";
|
||||
}
|
||||
|
||||
$response = array();
|
||||
$response["result"] = $message;
|
||||
|
||||
echo G::json_encode($response);
|
||||
break;
|
||||
}
|
||||
} catch (Exception $oException) {
|
||||
die($oException->getMessage());
|
||||
|
||||
@@ -494,6 +494,28 @@ DeleteUserAction = function(){
|
||||
if (uid.data.USR_UID==user_admin){
|
||||
Ext.Msg.alert(_('ID_USERS'), _('ID_CANNOT_DELETE_ADMIN_USER'));
|
||||
}else{
|
||||
var flagVerifyUserAssigSupervisor = 1;
|
||||
|
||||
Ext.Ajax.request({
|
||||
url: "users_Ajax",
|
||||
method: "POST",
|
||||
params: {
|
||||
"function": "verifyIfUserAssignedAsSupervisor",
|
||||
supervisorUserUid: uid.data.USR_UID
|
||||
},
|
||||
|
||||
success: function (response, opts) {
|
||||
var dataRespuesta = Ext.util.JSON.decode(response.responseText);
|
||||
|
||||
if (dataRespuesta.result == "OK") {
|
||||
flagVerifyUserAssigSupervisor = 0;
|
||||
}
|
||||
},
|
||||
failure: function (response, opts){
|
||||
//
|
||||
}
|
||||
});
|
||||
|
||||
viewport.getEl().mask(_('ID_PROCESSING'));
|
||||
Ext.Ajax.request({
|
||||
url: 'users_Ajax',
|
||||
@@ -509,7 +531,9 @@ DeleteUserAction = function(){
|
||||
}
|
||||
);
|
||||
}else{
|
||||
Ext.Msg.confirm(_('ID_CONFIRM'), _('ID_MSG_CONFIRM_DELETE_USER'),
|
||||
var msgConfirm = (flagVerifyUserAssigSupervisor == 1)? _("ID_MSG_CONFIRM_DELETE_USER_ASSINGED_SUPERVISOR") : _("ID_MSG_CONFIRM_DELETE_USER");
|
||||
|
||||
Ext.Msg.confirm(_('ID_CONFIRM'), msgConfirm,
|
||||
function(btn){
|
||||
if (btn=='yes') DeleteUser(uid.data.USR_UID);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user