summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAngie Byron <webchick@24967.no-reply.drupal.org>2010-01-03 20:29:00 +0000
committerAngie Byron <webchick@24967.no-reply.drupal.org>2010-01-03 20:29:00 +0000
commit8c4b6239b48a46e754e23a803f4a28745b4eb027 (patch)
treeffe9a01317c1d05e1ee45c7f51fd5dddad9acdbb
parentc5f36a4bb6d3d6d55ac526ba2edec29930580d4e (diff)
downloadbrdo-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.module14
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);
+ }
}
}