BUG 9713 User administration: Add a way to disable/enable users from users list SOLVED
- Add the functionallity to enable/disable users in the users list
This commit is contained in:
@@ -151,21 +151,21 @@ try {
|
||||
}
|
||||
break;
|
||||
|
||||
//This case is used to check if any of the user group has as role 'PROCESSMAKER_ADMIN',
|
||||
//This case is used to check if any of the user group has as role 'PROCESSMAKER_ADMIN',
|
||||
case 'usersAdminGroupExtJS':
|
||||
G::LoadClass('groups');
|
||||
$oGroup = new Groups();
|
||||
$aGroup = $oGroup->getUsersOfGroup($_POST['GRP_UID']);
|
||||
$aGroup = $oGroup->getUsersOfGroup($_POST['GRP_UID']);
|
||||
$responseUser = 'false';
|
||||
$usersAdmin = '';
|
||||
foreach ($aGroup as $iIndex => $aValues) {
|
||||
foreach ($aGroup as $iIndex => $aValues) {
|
||||
if ($aValues['USR_ROLE'] == 'PROCESSMAKER_ADMIN') {
|
||||
$responseUser = 'true';
|
||||
$usersAdmin .= $aValues['USR_FIRSTNAME'] . ' ' . $aValues['USR_LASTNAME'].', ';
|
||||
$usersAdmin .= $aValues['USR_FIRSTNAME'] . ' ' . $aValues['USR_LASTNAME'].', ';
|
||||
}
|
||||
}
|
||||
$usersAdmin = substr($usersAdmin, 0, -2);
|
||||
|
||||
|
||||
$result = new stdClass();
|
||||
$result->reponse = $responseUser;
|
||||
$result->users = $usersAdmin;
|
||||
@@ -178,7 +178,7 @@ try {
|
||||
$USR_UID = $_POST['uUID'];
|
||||
$total = 0;
|
||||
$history = 0;
|
||||
$c = $oProcessMap->getCriteriaUsersCases('TO_DO', $USR_UID);
|
||||
$c = $oProcessMap->getCriteriaUsersCases('TO_DO', $USR_UID);
|
||||
$total += ApplicationPeer::doCount($c);
|
||||
$c = $oProcessMap->getCriteriaUsersCases('DRAFT', $USR_UID);
|
||||
$total += ApplicationPeer::doCount($c);
|
||||
@@ -211,6 +211,23 @@ try {
|
||||
$aFields['USR_USERNAME'] = '';
|
||||
$oUser->update($aFields);
|
||||
break;
|
||||
case 'changeUserStatus':
|
||||
$response = new stdclass();
|
||||
if (isset($_REQUEST['USR_UID']) && isset($_REQUEST['NEW_USR_STATUS'])) {
|
||||
$RBAC->changeUserStatus($_REQUEST['USR_UID'], $_REQUEST['NEW_USR_STATUS']);
|
||||
require_once 'classes/model/Users.php';
|
||||
$userInstance = new Users();
|
||||
$userData = $userInstance->load($_REQUEST['USR_UID']);
|
||||
$userData['USR_STATUS'] = $_REQUEST['NEW_USR_STATUS'];
|
||||
$userInstance->update($userData);
|
||||
$response->status = 'OK';
|
||||
}
|
||||
else {
|
||||
$response->status = 'ERROR';
|
||||
$response->message = 'USR_UID and NEW_USR_STATUS parameters are required.';
|
||||
}
|
||||
die(G::json_encode($response));
|
||||
break;
|
||||
case 'availableGroups':
|
||||
G::LoadClass('groups');
|
||||
$filter = (isset($_POST['textFilter']))? $_POST['textFilter'] : '';
|
||||
@@ -243,7 +260,7 @@ try {
|
||||
G::LoadClass('groups');
|
||||
$oGroup = new Groups();
|
||||
foreach ($gUIDs as $GRP_UID){
|
||||
$oGroup->addUserToGroup($GRP_UID, $USR_UID);
|
||||
$oGroup->addUserToGroup($GRP_UID, $USR_UID);
|
||||
}
|
||||
break;
|
||||
case 'deleteGroupsToUserMultiple':
|
||||
@@ -252,7 +269,7 @@ try {
|
||||
G::LoadClass('groups');
|
||||
$oGroup = new Groups();
|
||||
foreach ($gUIDs as $GRP_UID){
|
||||
$oGroup->removeUserOfGroup($GRP_UID, $USR_UID);
|
||||
$oGroup->removeUserOfGroup($GRP_UID, $USR_UID);
|
||||
}
|
||||
break;
|
||||
case 'authSources':
|
||||
@@ -299,7 +316,7 @@ try {
|
||||
$arr = Array();
|
||||
$arr['AUTH_SOURCE_NAME'] = 'ProcessMaker (MYSQL)';
|
||||
$arr['AUTH_SOURCE_PROVIDER'] = 'MYSQL';
|
||||
$aFields = $arr;
|
||||
$aFields = $arr;
|
||||
}
|
||||
$res = Array();
|
||||
$res['data'] = $oCriteria;
|
||||
@@ -322,7 +339,7 @@ try {
|
||||
$aData['USR_AUTH_TYPE'] = $aFields['AUTH_SOURCE_PROVIDER'];
|
||||
$aData['UID_AUTH_SOURCE'] = $auth_uid;
|
||||
}
|
||||
if (isset($_POST['auth_dn'])){
|
||||
if (isset($_POST['auth_dn'])){
|
||||
$auth_dn = $_POST['auth_dn'];
|
||||
}else{
|
||||
$auth_dn = "";
|
||||
@@ -342,7 +359,7 @@ try {
|
||||
$config = $co->getConfiguration('usersList', 'pageSize','',$_SESSION['USER_LOGGED']);
|
||||
$limit_size = isset($config['pageSize']) ? $config['pageSize'] : 20;
|
||||
$start = isset($_REQUEST['start']) ? $_REQUEST['start'] : 0;
|
||||
$limit = isset($_REQUEST['limit']) ? $_REQUEST['limit'] : $limit_size;
|
||||
$limit = isset($_REQUEST['limit']) ? $_REQUEST['limit'] : $limit_size;
|
||||
$filter = isset($_REQUEST['textFilter']) ? $_REQUEST['textFilter'] : '';
|
||||
$auths = isset($_REQUEST['auths']) ? $_REQUEST['auths'] : '';
|
||||
$sort = isset($_REQUEST['sort']) ? $_REQUEST['sort'] : '';
|
||||
@@ -398,7 +415,7 @@ try {
|
||||
// $tmpL = $tmpL->addOr($oCriteria->getNewCriterion(UsersPeer::USR_UID, $aUsers[$i],Criteria::EQUAL));
|
||||
// }else{
|
||||
// $uList = $oCriteria->getNewCriterion(UsersPeer::USR_UID, $aUsers[$i],Criteria::EQUAL);
|
||||
// $tmpL = $uList;
|
||||
// $tmpL = $uList;
|
||||
// $sw_add = true;
|
||||
// }
|
||||
// }
|
||||
@@ -469,8 +486,8 @@ try {
|
||||
$aTypes = Array();
|
||||
$aTypes['to_do'] = 'CASES_INBOX';
|
||||
$aTypes['draft'] = 'CASES_DRAFT';
|
||||
$aTypes['cancelled'] = 'CASES_CANCELLED';
|
||||
$aTypes['sent'] = 'CASES_SENT';
|
||||
$aTypes['cancelled'] = 'CASES_CANCELLED';
|
||||
$aTypes['sent'] = 'CASES_SENT';
|
||||
$aTypes['paused'] = 'CASES_PAUSED';
|
||||
$aTypes['completed'] = 'CASES_COMPLETED';
|
||||
$aTypes['selfservice'] = 'CASES_SELFSERVICE';
|
||||
|
||||
@@ -40,6 +40,7 @@ var viewport;
|
||||
var smodel;
|
||||
var newButton;
|
||||
var editButton;
|
||||
var changeStatusButton;
|
||||
var deleteButton;
|
||||
var summaryButton;
|
||||
var groupsButton;
|
||||
@@ -83,6 +84,14 @@ Ext.onReady(function(){
|
||||
disabled: true
|
||||
});
|
||||
|
||||
changeStatusButton = new Ext.Button({
|
||||
text: _('ID_STATUS'),
|
||||
icon: '',
|
||||
iconCls: 'silk-add',
|
||||
handler: changeStatusCheck,
|
||||
disabled: true
|
||||
});
|
||||
|
||||
deleteButton = new Ext.Action({
|
||||
text: _('ID_DELETE'),
|
||||
iconCls: 'button_menu_ext ss_sprite ss_delete',
|
||||
@@ -155,8 +164,9 @@ Ext.onReady(function(){
|
||||
singleSelect: true,
|
||||
listeners:{
|
||||
rowselect: function(sm){
|
||||
editButton.enable();
|
||||
deleteButton.enable();
|
||||
editButton.enable();
|
||||
changeStatusButton.enable();
|
||||
deleteButton.enable();
|
||||
groupsButton.enable();
|
||||
//reassignButton.enable();
|
||||
authenticationButton.enable();
|
||||
@@ -164,11 +174,14 @@ Ext.onReady(function(){
|
||||
},
|
||||
rowdeselect: function(sm){
|
||||
editButton.disable();
|
||||
deleteButton.disable();
|
||||
groupsButton.disable();
|
||||
//reassignButton.disable();
|
||||
authenticationButton.disable();
|
||||
summaryButton.disable();
|
||||
changeStatusButton.setIcon('');
|
||||
changeStatusButton.setText(_('ID_STATUS'));
|
||||
changeStatusButton.disable();
|
||||
deleteButton.disable();
|
||||
groupsButton.disable();
|
||||
//reassignButton.disable();
|
||||
authenticationButton.disable();
|
||||
summaryButton.disable();
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -353,10 +366,24 @@ Ext.onReady(function(){
|
||||
store: store,
|
||||
cm: cmodel,
|
||||
sm: smodel,
|
||||
tbar: [newButton, '-',summaryButton,'-', editButton, deleteButton, '-', groupsButton, '-',authenticationButton, {xtype: 'tbfill'}, /* _('ID_AUTH_SOURCES')+': ',comboAuthSources,'-', */ searchText,clearTextButton,searchButton],
|
||||
tbar: [newButton, '-',summaryButton,'-', editButton, changeStatusButton, deleteButton, '-', groupsButton, '-',authenticationButton, {xtype: 'tbfill'}, searchText,clearTextButton,searchButton],
|
||||
bbar: bbarpaging,
|
||||
listeners: {
|
||||
rowdblclick : EditUserAction
|
||||
rowdblclick : EditUserAction,
|
||||
render: function() {
|
||||
infoGrid.getSelectionModel().on('rowselect', function() {
|
||||
var rowSelected = infoGrid.getSelectionModel().getSelected();
|
||||
changeStatusButton.enable();
|
||||
if (rowSelected.data.USR_STATUS == 'ACTIVE') {
|
||||
changeStatusButton.setIcon('/images/deactivate.png');
|
||||
changeStatusButton.setText(_('ID_DISABLE'));
|
||||
}
|
||||
else {
|
||||
changeStatusButton.setIcon('/images/activate.png');
|
||||
changeStatusButton.setText(_('ID_ENABLE'));
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
view: new Ext.grid.GroupingView({
|
||||
forceFit:true,
|
||||
@@ -405,6 +432,61 @@ NewUserAction = function(){
|
||||
location.href = 'usersNew?MODE=new';
|
||||
};
|
||||
|
||||
//Change user status
|
||||
changeStatus = function(userUid, newUsrStatus) {
|
||||
viewport.getEl().mask(_('ID_PROCESSING'));
|
||||
Ext.Ajax.request({
|
||||
url: 'users_Ajax',
|
||||
params: {'function': 'changeUserStatus', USR_UID: userUid, NEW_USR_STATUS: newUsrStatus},
|
||||
success: function(res, opt) {
|
||||
viewport.getEl().unmask();
|
||||
changeStatusButton.disable();
|
||||
changeStatusButton.setIcon('');
|
||||
changeStatusButton.setText(_('ID_STATUS'));
|
||||
DoSearch();
|
||||
},
|
||||
failure: DoNothing
|
||||
});
|
||||
};
|
||||
|
||||
//Check change user status
|
||||
changeStatusCheck = function() {
|
||||
var row = infoGrid.getSelectionModel().getSelected();
|
||||
if (row) {
|
||||
if (row.data.USR_UID == user_admin){
|
||||
Ext.Msg.alert(_('ID_USERS'), _('ID_CANNOT_CHANGE_STATUS_ADMIN_USER'));
|
||||
}
|
||||
else {
|
||||
viewport.getEl().mask(_('ID_PROCESSING'));
|
||||
Ext.Ajax.request({
|
||||
url: 'users_Ajax',
|
||||
params: {'function': 'canDeleteUser', uUID: row.data.USR_UID},
|
||||
success: function(res, opt) {
|
||||
viewport.getEl().unmask();
|
||||
response = Ext.util.JSON.decode(res.responseText);
|
||||
if (!response.candelete && row.data.USR_STATUS == 'ACTIVE') {
|
||||
Ext.Msg.confirm(_('ID_CONFIRM'), _('ID_USERS_HAS_ASSIGNED_CASES'), function(btn) {
|
||||
if (btn == 'yes') {
|
||||
changeStatus(row.data.USR_UID, row.data.USR_STATUS == 'ACTIVE' ? 'INACTIVE' : 'ACTIVE');
|
||||
}
|
||||
else {
|
||||
viewport.getEl().unmask();
|
||||
}
|
||||
});
|
||||
}
|
||||
else {
|
||||
changeStatus(row.data.USR_UID, row.data.USR_STATUS == 'ACTIVE' ? 'INACTIVE' : 'ACTIVE');
|
||||
}
|
||||
},
|
||||
failure: function(r, o) {
|
||||
viewport.getEl().unmask();
|
||||
DoNothing();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//Delete User Action
|
||||
DeleteUserAction = function(){
|
||||
var uid = infoGrid.getSelectionModel().getSelected();
|
||||
|
||||
Reference in New Issue
Block a user