diff --git a/gulliver/system/class.rbac.php b/gulliver/system/class.rbac.php index 42c128e1d..58e4933cc 100755 --- a/gulliver/system/class.rbac.php +++ b/gulliver/system/class.rbac.php @@ -59,6 +59,7 @@ class RBAC var $currentSystemobj; var $rolesPermissionsObj; var $authSourcesObj; + var $permissionsAdmin; var $aUserInfo = array(); var $aRbacPlugins = array(); @@ -143,6 +144,37 @@ class RBAC } } + /** + * gets the Role and their permissions for Administrator Processmaker + * + * @access public + * @return $this->permissionsAdmin[ $permissionsAdmin ] + */ + function loadPermissionAdmin() { + $permissionsAdmin =array( + array("PER_UID"=>"00000000000000000000000000000001","PER_CODE"=>"PM_LOGIN"), + array("PER_UID"=>"00000000000000000000000000000002","PER_CODE"=>"PM_SETUP"), + array("PER_UID"=>"00000000000000000000000000000003","PER_CODE"=>"PM_USERS"), + array("PER_UID"=>"00000000000000000000000000000004","PER_CODE"=>"PM_FACTORY"), + array("PER_UID"=>"00000000000000000000000000000005","PER_CODE"=>"PM_CASES"), + array("PER_UID"=>"00000000000000000000000000000006","PER_CODE"=>"PM_ALLCASES"), + array("PER_UID"=>"00000000000000000000000000000007","PER_CODE"=>"PM_REASSIGNCASE"), + array("PER_UID"=>"00000000000000000000000000000008","PER_CODE"=>"PM_REPORTS"), + array("PER_UID"=>"00000000000000000000000000000009","PER_CODE"=>"PM_SUPERVISOR"), + array("PER_UID"=>"00000000000000000000000000000010","PER_CODE"=>"PM_SETUP_ADVANCE"), + array("PER_UID"=>"00000000000000000000000000000011","PER_CODE"=>"PM_DASHBOARD"), + array("PER_UID"=>"00000000000000000000000000000012","PER_CODE"=>"PM_WEBDAV"), + array("PER_UID"=>"00000000000000000000000000000013","PER_CODE"=>"PM_DELETECASE"), + array("PER_UID"=>"00000000000000000000000000000014","PER_CODE"=>"PM_EDITPERSONALINFO"), + array("PER_UID"=>"00000000000000000000000000000015","PER_CODE"=>"PM_FOLDERS_VIEW"), + array("PER_UID"=>"00000000000000000000000000000016","PER_CODE"=>"PM_FOLDERS_ADD_FOLDER"), + array("PER_UID"=>"00000000000000000000000000000017","PER_CODE"=>"PM_FOLDERS_ADD_FILE"), + array("PER_UID"=>"00000000000000000000000000000018","PER_CODE"=>"PM_CANCELCASE"), + array("PER_UID"=>"00000000000000000000000000000019","PER_CODE"=>"PM_FOLDER_DELETE") + ); + return $permissionsAdmin; + } + /** * Gets the roles and permission for one RBAC_user * diff --git a/workflow/engine/methods/roles/rolesUsersPermission.php b/workflow/engine/methods/roles/rolesUsersPermission.php index 168d8e626..78de694c1 100755 --- a/workflow/engine/methods/roles/rolesUsersPermission.php +++ b/workflow/engine/methods/roles/rolesUsersPermission.php @@ -61,8 +61,10 @@ $roles['ROL_UID'] = $_GET['rUID']; $roles['ROL_CODE'] = $RBAC->getRoleCode($_GET['rUID']); $roles['CURRENT_TAB'] = ($_GET['tab']=='permissions') ? 1 : 0; +$permissionsAdmin = $RBAC->loadPermissionAdmin(); $oHeadPublisher->assign('ROLES', $roles); +$oHeadPublisher->assign('permissionsAdmin', $permissionsAdmin); G::RenderPage('publish', 'extJs'); ?> \ No newline at end of file diff --git a/workflow/engine/templates/roles/rolesUsersPermission.js b/workflow/engine/templates/roles/rolesUsersPermission.js index 0c41dbc88..876a1cb18 100755 --- a/workflow/engine/templates/roles/rolesUsersPermission.js +++ b/workflow/engine/templates/roles/rolesUsersPermission.js @@ -150,14 +150,27 @@ Ext.onReady(function(){ selectSingle: false, listeners:{ selectionchange: function(sm){ - switch(sm.getCount()){ - case 0: Ext.getCmp('removeButton').disable(); break; - default: (ROLES.ROL_UID==pm_admin)? Ext.getCmp('removeButton').disable() : Ext.getCmp('removeButton').enable(); break; - } - } - } - }); - + switch (sm.getCount()) { + case 0: Ext.getCmp('removeButton').disable(); break; + default: + Ext.getCmp('removeButton').enable(); + if (ROLES.ROL_UID == pm_admin) { + var permissionUid = assignedGrid.getSelectionModel().getSelections(); + permissionUid = permissionUid[0].get('PER_UID'); + for (i=0; i', handler: AssignPermissionAction, id: 'assignButton', disabled: true}, {xtype:'button',text: '<', handler: RemovePermissionAction, id: 'removeButton', disabled: true}, {xtype:'button',text: '>>', handler: AssignAllPermissionsAction, id: 'assignButtonAll', disabled: false}, - {xtype:'button',text: '<<', handler: RemoveAllPermissionsAction, id: 'removeButtonAll', disabled: (ROLES.ROL_UID==pm_admin) ? true : false} + {xtype:'button',text: '<<', handler: RemoveAllPermissionsAction, id: 'removeButtonAll', disabled: false} ], hidden : true }); @@ -659,14 +672,24 @@ AssignPermissionAction = function(){ //RemoveButton Functionality RemovePermissionAction = function(){ - if (ROLES.ROL_UID != pm_admin){ - rowsSelected = assignedGrid.getSelectionModel().getSelections(); - var arrAux = new Array(); - for(var a=0; a < rowsSelected.length; a++){ - arrAux[a] = rowsSelected[a].get('PER_UID'); - } - DeletePermissionsRole(arrAux,RefreshPermissions,FailureProcess); - } + rowsSelected = assignedGrid.getSelectionModel().getSelections(); + var arrAux = new Array(); + for(var a=0; a < rowsSelected.length; a++){ + var sw = true; + if (ROLES.ROL_UID == pm_admin) { + for (i=0; i0){ - for (var r=0; r < allRows.getCount(); r++){ - row = allRows.getAt(r); - arrAux[r] = row.data['PER_UID']; - } - DeletePermissionsRole(arrAux,RefreshPermissions,FailureProcess); - } + var allRows = assignedGrid.getStore(); + var arrAux = new Array(); + if (allRows.getCount()>0){ + for (var r=0; r < allRows.getCount(); r++){ + row = allRows.getAt(r); + var sw = true; + if (ROLES.ROL_UID == pm_admin) { + for (i=0; i