Index: role_delegation.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/role_delegation/role_delegation.module,v retrieving revision 1.14.2.3 diff -u -r1.14.2.3 role_delegation.module --- role_delegation.module 4 Jan 2010 17:11:48 -0000 1.14.2.3 +++ role_delegation.module 4 Jan 2010 20:14:12 -0000 @@ -64,8 +64,9 @@ // Provide a separate checkbox for each role but hide those the user has no authority over. $roles = _role_delegation_roles(); $roles_preserve = array('authenticated user'); + $assign_all_roles = user_access('assign all roles') || (user_access('administer permissions') && !module_exists('permissions_lock')); foreach ($roles as $rid => $role) { - if (!(user_access('assign all roles') || user_access(_role_delegation_make_perm($role)) || user_access('administer permissions'))) { + if (!($assign_all_roles || user_access(_role_delegation_make_perm($role)))) { // Hide roles the user can't assign. $form['roles'][$rid] = array( '#type' => 'value', @@ -130,7 +131,7 @@ return FALSE; } // Check access to role assignment page. - if (user_access('administer permissions')) { + if (user_access('administer permissions') && !module_exists('permissions_lock')) { return TRUE; } $perms = role_delegation_perm(); @@ -166,7 +167,7 @@ function role_delegation_user($op, &$edit, &$account, $category = NULL) { if ($op == 'register' || ($op == 'form' && $category == 'account')) { // Only alter user form when user can't assign permissions without Role Delegation. - if (!user_access('administer permissions')) { + if (!(user_access('administer permissions') && !module_exists('permissions_lock'))) { // Split up roles based on whether they can be delegated or not. $current_roles = isset($account->roles) ? $account->roles : array(); $rids_default = array(); @@ -218,7 +219,7 @@ function role_delegation_user_operations($form_state = array()) { // Only provide role add/remove operations when user can't assign permissions // without Role Delegation. - if (user_access('administer permissions')) { + if (user_access('administer permissions') && !module_exists('permissions_lock')) { return; }