You are here

public function AccountSwitcher::switchBack in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Session/AccountSwitcher.php \Drupal\Core\Session\AccountSwitcher::switchBack()

Reverts to a previous account after switching.

Return value

$this $this.

Throws

\RuntimeException When there are no more account switches to revert.

Overrides AccountSwitcherInterface::switchBack

File

core/lib/Drupal/Core/Session/AccountSwitcher.php, line 73

Class

AccountSwitcher
An implementation of AccountSwitcherInterface.

Namespace

Drupal\Core\Session

Code

public function switchBack() {

  // Restore the previous account from the stack.
  if (!empty($this->accountStack)) {
    $this->currentUser
      ->setAccount(array_pop($this->accountStack));
  }
  else {
    throw new \RuntimeException('No more accounts to revert to.');
  }

  // Restore original session saving status if all account switches are
  // reverted.
  if (empty($this->accountStack)) {
    if ($this->originalSessionSaving) {
      $this->writeSafeHandler
        ->setSessionWritable(TRUE);
    }
  }
  return $this;
}