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;
   }
 
