diff --git a/workflow/engine/methods/roles/data_rolesPermissions.php b/workflow/engine/methods/roles/data_rolesPermissions.php index b4f1c71eb..aa6ce4d34 100644 --- a/workflow/engine/methods/roles/data_rolesPermissions.php +++ b/workflow/engine/methods/roles/data_rolesPermissions.php @@ -24,11 +24,17 @@ if ($TYPE_DATA == 'show') { } $rows = []; -$per = new RolesPermissions(); +$rolesPermissions = new RolesPermissions(); +$permissionsAdmin = $RBAC->loadPermissionAdmin(); + while ($oDataset->next()) { $row = $oDataset->getRow(); - $per->setPerUid($row['PER_UID']); - $row['PER_NAME'] = $per->getPermissionName(); + $rolesPermissions->setPerUid($row['PER_UID']); + // Get permission name + $row['PER_NAME'] = $rolesPermissions->getPermissionName(); + // Define permission type + $row['TYPE'] = array_search($row['PER_UID'], array_column($permissionsAdmin, 'PER_UID')) !== false ? 'ADMIN' : 'CUSTOM'; + $rows[] = $row; } diff --git a/workflow/engine/templates/roles/rolesUsersPermission.js b/workflow/engine/templates/roles/rolesUsersPermission.js index 647789599..d24d3a4fc 100644 --- a/workflow/engine/templates/roles/rolesUsersPermission.js +++ b/workflow/engine/templates/roles/rolesUsersPermission.js @@ -915,12 +915,16 @@ AssignPermissionAction = function(){ * @returns {void} */ RemovePermissionAction = function () { - if (ROLES.ROL_UID === pm_admin) { - var message = _('ID_THE_PERMISSION_CAN_NOT_BE_UNASSIGNED_FROM_THIS_ROLE'); - Ext.Msg.alert(_('ID_INFORMATION'), message); - return; - } rowsSelected = assignedGrid.getSelectionModel().getSelections(); + for (var a = 0; a < rowsSelected.length; a++) { + if (ROLES.ROL_UID === pm_admin) { + if (rowsSelected[a].json.TYPE !== 'CUSTOM') { + var message = _('ID_THE_PERMISSION_CAN_NOT_BE_UNASSIGNED_FROM_THIS_ROLE'); + Ext.Msg.alert(_('ID_INFORMATION'), message); + return; + } + } + } var arrAux = new Array(); var sw; for (var a = 0; a < rowsSelected.length; a++) {