summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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);
+ }
}
}