diff --git a/core/lib/Drupal/Core/Plugin/PluginBase.php b/core/lib/Drupal/Core/Plugin/PluginBase.php index 03f952a6426da9b92b27491984a681f82892bbba..246ddaadbaa57ef7a3a58608da6807e48d9fa975 100644 --- a/core/lib/Drupal/Core/Plugin/PluginBase.php +++ b/core/lib/Drupal/Core/Plugin/PluginBase.php @@ -22,6 +22,25 @@ abstract class PluginBase extends ComponentPluginBase { */ protected $translationManager; + /** + * Current user object. + * + * @var \Drupal\Core\Session\AccountInterface + */ + protected $currentUser; + + /** + * Gets the current active user. + * + * @return \Drupal\Core\Session\AccountInterface + */ + protected function currentUser() { + if (!$this->currentUser) { + $this->currentUser = \Drupal::currentUser(); + } + return $this->currentUser; + } + /** * Translates a string to the current language or to a given language. * diff --git a/core/modules/user/lib/Drupal/user/Plugin/Search/UserSearch.php b/core/modules/user/lib/Drupal/user/Plugin/Search/UserSearch.php index 52ed50b07a3986ca5559806060a7851c98cc94b3..ee1d590c763455a8ff7b86f8b577114cccff79bc 100644 --- a/core/modules/user/lib/Drupal/user/Plugin/Search/UserSearch.php +++ b/core/modules/user/lib/Drupal/user/Plugin/Search/UserSearch.php @@ -120,7 +120,7 @@ public function execute() { ->select('users') ->extend('Drupal\Core\Database\Query\PagerSelectExtender'); $query->fields('users', array('uid')); - $user_account = $this->request->attributes->get('_account'); + $user_account = $this->currentUser(); if ($user_account->hasPermission('administer users')) { // Administrators can also search in the otherwise private email field, and // they don't need to be restricted to only active users.