Version 1
[yaffs-website] / web / core / modules / shortcut / src / ShortcutSetStorageInterface.php
diff --git a/web/core/modules/shortcut/src/ShortcutSetStorageInterface.php b/web/core/modules/shortcut/src/ShortcutSetStorageInterface.php
new file mode 100644 (file)
index 0000000..47036a6
--- /dev/null
@@ -0,0 +1,79 @@
+<?php
+
+namespace Drupal\shortcut;
+
+use Drupal\Core\Config\Entity\ConfigEntityStorageInterface;
+use Drupal\Core\Session\AccountInterface;
+
+/**
+ * Defines an interface for shortcut_set entity storage classes.
+ */
+interface ShortcutSetStorageInterface extends ConfigEntityStorageInterface {
+
+  /**
+   * Assigns a user to a particular shortcut set.
+   *
+   * @param \Drupal\shortcut\ShortcutSetInterface $shortcut_set
+   *   An object representing the shortcut set.
+   * @param $account
+   *   A user account that will be assigned to use the set.
+   */
+  public function assignUser(ShortcutSetInterface $shortcut_set, $account);
+
+  /**
+   * Unassigns a user from any shortcut set they may have been assigned to.
+   *
+   * The user will go back to using whatever default set applies.
+   *
+   * @param $account
+   *   A user account that will be removed from the shortcut set assignment.
+   *
+   * @return bool
+   *   TRUE if the user was previously assigned to a shortcut set and has been
+   *   successfully removed from it. FALSE if the user was already not assigned
+   *   to any set.
+   */
+  public function unassignUser($account);
+
+  /**
+   * Delete shortcut sets assigned to users.
+   *
+   * @param \Drupal\shortcut\ShortcutSetInterface $entity
+   *   Delete the user assigned sets belonging to this shortcut.
+   */
+  public function deleteAssignedShortcutSets(ShortcutSetInterface $entity);
+
+  /**
+   * Get the name of the set assigned to this user.
+   *
+   * @param \Drupal\user\Entity\User $account
+   *   The user account.
+   *
+   * @return string
+   *   The name of the shortcut set assigned to this user.
+   */
+  public function getAssignedToUser($account);
+
+  /**
+   * Get the number of users who have this set assigned to them.
+   *
+   * @param \Drupal\shortcut\ShortcutSetInterface $shortcut_set
+   *   The shortcut to count the users assigned to.
+   *
+   * @return int
+   *   The number of users who have this set assigned to them.
+   */
+  public function countAssignedUsers(ShortcutSetInterface $shortcut_set);
+
+  /**
+   * Gets the default shortcut set for a given user account.
+   *
+   * @param \Drupal\Core\Session\AccountInterface $account
+   *   The user account whose default shortcut set will be returned.
+   *
+   * @return \Drupal\shortcut\ShortcutSetInterface
+   *   An object representing the default shortcut set.
+   */
+  public function getDefaultSet(AccountInterface $account);
+
+}