diff --git a/src/Plugin/LinkStatusHandlerBase.php b/src/Plugin/LinkStatusHandlerBase.php index 83c1894..e5d4f29 100644 --- a/src/Plugin/LinkStatusHandlerBase.php +++ b/src/Plugin/LinkStatusHandlerBase.php @@ -176,7 +176,16 @@ abstract class LinkStatusHandlerBase extends PluginBase implements LinkStatusHan */ protected function switchSession() { // Switch anonymous user to an admin. - $this->accountSwitcher->switchTo(new UserSession(['uid' => user_load_by_name($this->linkcheckerSetting->get('error.impersonate_account'))])); + $loadedUser = user_load_by_name($this->linkcheckerSetting->get('error.impersonate_account')); + + if (empty($loadedUser)) { + $loadedUser = user_load_by_name('admin'); + } + + $userSessionValues = [ + 'uid' => $loadedUser->id(), + 'name' => $loadedUser->getAccountName(), + 'roles' => $loadedUser->getRoles(), + 'mail' => $loadedUser->getEmail(), + ]; + + $this->accountSwitcher->switchTo(new UserSession($userSessionValues)); } /**