BUG 14093 "User is able to delete groups and..." SOLVED
- User is able to delete groups and it is being used by a process. - Problema resuelto, cuando se elimina a un grupo por ADMIN>USERS>GROUPS por un usuario, este grupo puede ser eliminado sin restriccion aunque el grupo este asignado a una tarea lo cual no es correcto. Se hace una validacion que verifica si el grupo esta asignado a una tarea, el grupo NO puede ser eliminado, se eliminara el grupo cuando este no este asignado a ninguna tarea. Disponible para la version 2.5.3 de ProcessMaker.
This commit is contained in:
committed by
Erik Amaru Ortiz
parent
6d430abb29
commit
e1979b360e
@@ -178,7 +178,7 @@ switch ($_POST['action']) {
|
||||
$criteria = new Criteria( 'workflow' );
|
||||
$criteria->add(ObjectPermissionPeer::USR_UID, $_POST['GRP_UID']);
|
||||
ObjectPermissionPeer::doDelete( $criteria );
|
||||
|
||||
|
||||
//Delete supervisors assignments
|
||||
require_once 'classes/model/ProcessUser.php';
|
||||
$criteria = new Criteria( 'workflow' );
|
||||
@@ -342,5 +342,24 @@ switch ($_POST['action']) {
|
||||
$c->saveConfig( 'groupList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
|
||||
echo '{success: true}';
|
||||
break;
|
||||
}
|
||||
case "verifyIfAssigned":
|
||||
$groupUid = $_POST["groupUid"];
|
||||
$message = "OK";
|
||||
|
||||
$criteria = new Criteria("workflow");
|
||||
$criteria->addSelectColumn(TaskUserPeer::TAS_UID);
|
||||
$criteria->add(TaskUserPeer::USR_UID, $groupUid, Criteria::EQUAL);
|
||||
$criteria->add(TaskUserPeer::TU_RELATION, "2", Criteria::EQUAL);
|
||||
|
||||
$rsCriteria = TaskUserPeer::doSelectRS($criteria);
|
||||
$rsCriteria->setFetchmode(ResultSet::FETCHMODE_ASSOC);
|
||||
|
||||
if($rsCriteria->next() != 0) {
|
||||
$message = "ERROR";
|
||||
}
|
||||
|
||||
$response = array();
|
||||
$response["result"] = $message;
|
||||
echo G::json_encode($response);
|
||||
break;
|
||||
}
|
||||
@@ -494,31 +494,54 @@ SaveEditGroup = function(){
|
||||
};
|
||||
|
||||
//Delete Button Action
|
||||
DeleteButtonAction = function(){
|
||||
Ext.Msg.confirm(_('ID_CONFIRM'), _('ID_MSG_CONFIRM_DELETE_GROUP'),
|
||||
function(btn, text){
|
||||
if (btn=="yes"){
|
||||
rowSelected = infoGrid.getSelectionModel().getSelected();
|
||||
viewport.getEl().mask(_('ID_PROCESSING'));
|
||||
Ext.Ajax.request({
|
||||
url: 'groups_Ajax',
|
||||
params: {action: 'deleteGroup', GRP_UID: rowSelected.data.GRP_UID},
|
||||
success: function(r,o){
|
||||
viewport.getEl().unmask();
|
||||
DoSearch();
|
||||
editButton.disable(); //Disable Edit Button
|
||||
deleteButton.disable(); //Disable Delete Button
|
||||
membersButton.disable(); //Disable Members Button
|
||||
PMExt.notify(_('ID_GROUPS'), _('ID_GROUPS_SUCCESS_DELETE'));
|
||||
},
|
||||
failure: function(){
|
||||
viewport.getEl().unmask();
|
||||
}
|
||||
});
|
||||
DeleteButtonAction = function() {
|
||||
Ext.Msg.confirm(_('ID_CONFIRM'), _('ID_MSG_CONFIRM_DELETE_GROUP'),
|
||||
function (btn, text) {
|
||||
if (btn == "yes") {
|
||||
rowSelected = infoGrid.getSelectionModel().getSelected();
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
Ext.Ajax.request({
|
||||
url: "groups_Ajax",
|
||||
method: "POST",
|
||||
params: {
|
||||
action: "verifyIfAssigned",
|
||||
groupUid: rowSelected.data.GRP_UID
|
||||
},
|
||||
|
||||
success: function (response, opts) {
|
||||
var dataRespuesta = Ext.util.JSON.decode(response.responseText);
|
||||
if (dataRespuesta.result == "OK") {
|
||||
viewport.getEl().mask(_("ID_PROCESSING"));
|
||||
Ext.Ajax.request({
|
||||
url: "groups_Ajax",
|
||||
params: {
|
||||
action: "deleteGroup",
|
||||
GRP_UID: rowSelected.data.GRP_UID
|
||||
},
|
||||
|
||||
success: function(r,o) {
|
||||
viewport.getEl().unmask();
|
||||
DoSearch();
|
||||
editButton.disable(); //Disable Edit Button
|
||||
deleteButton.disable(); //Disable Delete Button
|
||||
membersButton.disable(); //Disable Members Button
|
||||
PMExt.notify(_('ID_GROUPS'), _('ID_GROUPS_SUCCESS_DELETE'));
|
||||
},
|
||||
failure: function() {
|
||||
viewport.getEl().unmask();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Ext.MessageBox.alert(_("ID_ERROR"), _("ID_GROUP_CANNOT_DELETE_WHILE_ASSIGNED_TO_TASK"));
|
||||
}
|
||||
},
|
||||
failure: function (response, opts){
|
||||
//
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
);
|
||||
};
|
||||
|
||||
//Render Status
|
||||
|
||||
Reference in New Issue
Block a user