Version 1
[yaffs-website] / web / core / lib / Drupal / Core / Session / AccountSwitcherInterface.php
diff --git a/web/core/lib/Drupal/Core/Session/AccountSwitcherInterface.php b/web/core/lib/Drupal/Core/Session/AccountSwitcherInterface.php
new file mode 100644 (file)
index 0000000..2f32609
--- /dev/null
@@ -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();
+
+}