diff options
author | Angie Byron <webchick@24967.no-reply.drupal.org> | 2010-01-03 20:29:00 +0000 |
---|---|---|
committer | Angie Byron <webchick@24967.no-reply.drupal.org> | 2010-01-03 20:29:00 +0000 |
commit | 8c4b6239b48a46e754e23a803f4a28745b4eb027 (patch) | |
tree | ffe9a01317c1d05e1ee45c7f51fd5dddad9acdbb | |
parent | c5f36a4bb6d3d6d55ac526ba2edec29930580d4e (diff) | |
download | brdo-8c4b6239b48a46e754e23a803f4a28745b4eb027.tar.gz brdo-8c4b6239b48a46e754e23a803f4a28745b4eb027.tar.bz2 |
#651410 by sun: Fixed error in user_modules_installed() when duplicate permissions are defined.
-rw-r--r-- | modules/user/user.module | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/modules/user/user.module b/modules/user/user.module index 1593468d2..cf1db1f1e 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -3213,17 +3213,15 @@ function user_modules_installed($modules) { // Assign all available permissions to the administrator role. $rid = variable_get('user_admin_role', 0); if ($rid) { + $permissions = array(); foreach ($modules as $module) { - if ($permissions = module_invoke($module, 'permission')) { - foreach (array_keys($permissions) as $permission) { - db_insert('role_permission') - ->fields(array( - 'rid' => $rid, - 'permission' => $permission, - ))->execute(); - } + if ($module_permissions = module_invoke($module, 'permission')) { + $permissions = array_merge($permissions, array_keys($module_permissions)); } } + if (!empty($permissions)) { + user_role_grant_permissions($rid, $permissions); + } } } |