diff core/lib/Drupal/Core/Session/AccountSwitcherInterface.php @ 0:4c8ae668cc8c

Initial import (non-working)
author Chris Cannam
date Wed, 29 Nov 2017 16:09:58 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/core/lib/Drupal/Core/Session/AccountSwitcherInterface.php	Wed Nov 29 16:09:58 2017 +0000
@@ -0,0 +1,38 @@
+<?php
+
+namespace Drupal\Core\Session;
+
+/**
+ * Defines an interface for a service for safe account switching.
+ *
+ * @ingroup user_api
+ */
+interface AccountSwitcherInterface {
+
+  /**
+   * Safely switches to another account.
+   *
+   * Each invocation of AccountSwitcherInterface::switchTo() must be
+   * matched by a corresponding invocation of
+   * AccountSwitcherInterface::switchBack() in the same function.
+   *
+   * @param \Drupal\Core\Session\AccountInterface $account
+   *   The account to switch to.
+   *
+   * @return \Drupal\Core\Session\AccountSwitcherInterface
+   *   $this.
+   */
+  public function switchTo(AccountInterface $account);
+
+  /**
+   * Reverts to a previous account after switching.
+   *
+   * @return \Drupal\Core\Session\AccountSwitcherInterface
+   *   $this.
+   *
+   * @throws \RuntimeException
+   *   When there are no more account switches to revert.
+   */
+  public function switchBack();
+
+}