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 = new Criteria( 'workflow' );
|
||||||
$criteria->add(ObjectPermissionPeer::USR_UID, $_POST['GRP_UID']);
|
$criteria->add(ObjectPermissionPeer::USR_UID, $_POST['GRP_UID']);
|
||||||
ObjectPermissionPeer::doDelete( $criteria );
|
ObjectPermissionPeer::doDelete( $criteria );
|
||||||
|
|
||||||
//Delete supervisors assignments
|
//Delete supervisors assignments
|
||||||
require_once 'classes/model/ProcessUser.php';
|
require_once 'classes/model/ProcessUser.php';
|
||||||
$criteria = new Criteria( 'workflow' );
|
$criteria = new Criteria( 'workflow' );
|
||||||
@@ -342,5 +342,24 @@ switch ($_POST['action']) {
|
|||||||
$c->saveConfig( 'groupList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
|
$c->saveConfig( 'groupList', 'pageSize', '', $_SESSION['USER_LOGGED'] );
|
||||||
echo '{success: true}';
|
echo '{success: true}';
|
||||||
break;
|
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
|
//Delete Button Action
|
||||||
DeleteButtonAction = function(){
|
DeleteButtonAction = function() {
|
||||||
Ext.Msg.confirm(_('ID_CONFIRM'), _('ID_MSG_CONFIRM_DELETE_GROUP'),
|
Ext.Msg.confirm(_('ID_CONFIRM'), _('ID_MSG_CONFIRM_DELETE_GROUP'),
|
||||||
function(btn, text){
|
function (btn, text) {
|
||||||
if (btn=="yes"){
|
if (btn == "yes") {
|
||||||
rowSelected = infoGrid.getSelectionModel().getSelected();
|
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();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
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
|
//Render Status
|
||||||
|
|||||||
Reference in New Issue
Block a user