diff -u b/core/modules/user/user.module b/core/modules/user/user.module --- b/core/modules/user/user.module +++ b/core/modules/user/user.module @@ -422,10 +422,21 @@ */ function user_role_permissions(array $roles) { $role_permissions = array(); + if (defined('MAINTENANCE_MODE') && MAINTENANCE_MODE == 'update') { + // Can't use the entity system as this function is used during update. + $entities = array(); + } + else { + $entities = entity_load_multiple('user_role', array_keys($roles)); + } foreach ($roles as $rid => $name) { $role_permissions[$rid] = array(); - // Can not use the entity system as this function is used during update. - $permissions = Drupal::config("user.role.$rid")->get('permissions') ?: array(); + if (isset($entities[$rid])) { + $permissions = $entities[$rid]->permissions; + } + else { + $permissions = Drupal::config("user.role.$rid")->get('permissions') ?: array(); + } foreach ($permissions as $permission) { $role_permissions[$rid][$permission] = TRUE; }