diff --git a/modules/user/user.module b/modules/user/user.module index c1c7ec2..6bca650 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -3065,15 +3065,17 @@ function user_role_grant_permissions($rid, array $permissions = array()) { $modules = user_permission_get_modules(); // Grant new permissions for the role. foreach ($permissions as $name) { - db_merge('role_permission') - ->key(array( + if (isset($modules[$name])) { + db_merge('role_permission') + ->key(array( 'rid' => $rid, 'permission' => $name, )) - ->fields(array( + ->fields(array( 'module' => $modules[$name], )) - ->execute(); + ->execute(); + } } // Clear the user access cache.