diff --git a/modules/user/user.module b/modules/user/user.module index 1593468d21a32d28af8a0ba1199cf8ea3623ff41..cf1db1f1e00cd36eb35d81f759e863d3d337382d 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); + } } }