diff -u b/core/modules/user/lib/Drupal/user/Plugin/views/field/Permissions.php b/core/modules/user/lib/Drupal/user/Plugin/views/field/Permissions.php --- b/core/modules/user/lib/Drupal/user/Plugin/views/field/Permissions.php +++ b/core/modules/user/lib/Drupal/user/Plugin/views/field/Permissions.php @@ -51,13 +51,15 @@ $result = $query->execute(); $rids = array(); foreach ($result as $row) { - $rids[] = $row->rid; + $rids[$row->rid][] = $row->uid; } if ($rids) { - $roles = entity_load_multiple('user_role', $rids); - foreach ($result as $row) { - foreach ($roles[$row->rid]->permissions as $permission) { - $this->items[$row->uid][$permission]['permission'] = $permission_names[$permission]['title']; + $roles = entity_load_multiple('user_role', array_keys($rids)); + foreach ($rids as $rid => $uids) { + foreach ($roles[$rid]->permissions as $permission) { + foreach ($uids as $uid) { + $this->items[$uid][$permission]['permission'] = $permission_names[$permission]['title']; + } } } } 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,11 @@ */ function user_role_permissions(array $roles) { $role_permissions = array(); - $role_entities = entity_load_multiple('user_role', array_keys($roles)); - foreach ($role_entities as $rid => $role_entity) { + foreach ($roles as $rid => $name) { $role_permissions[$rid] = array(); - foreach ($role_entity->permissions as $permission) { + // Can not use the entity system as this function is used during update. + $permissions = Drupal::config("user.role.$rid")->get('permissions') ?: array(); + foreach ($permissions as $permission) { $role_permissions[$rid][$permission] = TRUE; } }