Version 1
[yaffs-website] / web / core / modules / user / src / UserInterface.php
diff --git a/web/core/modules/user/src/UserInterface.php b/web/core/modules/user/src/UserInterface.php
new file mode 100644 (file)
index 0000000..6919e0d
--- /dev/null
@@ -0,0 +1,224 @@
+<?php
+
+namespace Drupal\user;
+
+use Drupal\Core\Entity\EntityChangedInterface;
+use Drupal\Core\Entity\ContentEntityInterface;
+use Drupal\Core\Session\AccountInterface;
+
+/**
+ * Provides an interface defining a user entity.
+ *
+ * @ingroup user_api
+ */
+interface UserInterface extends ContentEntityInterface, EntityChangedInterface, AccountInterface {
+
+  /**
+   * Maximum length of username text field.
+   *
+   * Keep this under 191 characters so we can use a unique constraint in MySQL.
+   */
+  const USERNAME_MAX_LENGTH = 60;
+
+  /**
+   * Only administrators can create user accounts.
+   */
+  const REGISTER_ADMINISTRATORS_ONLY = 'admin_only';
+
+  /**
+   * Visitors can create their own accounts.
+   */
+  const REGISTER_VISITORS = 'visitors';
+
+  /**
+   * Visitors can create accounts that only become active with admin approval.
+   */
+  const REGISTER_VISITORS_ADMINISTRATIVE_APPROVAL = 'visitors_admin_approval';
+
+  /**
+   * New users will be set to the default time zone at registration.
+   */
+  const TIMEZONE_DEFAULT = 0;
+
+  /**
+   * New users will get an empty time zone at registration.
+   */
+  const TIMEZONE_EMPTY = 1;
+
+  /**
+   * New users will select their own timezone at registration.
+   */
+  const TIMEZONE_SELECT = 2;
+
+  /**
+   * Whether a user has a certain role.
+   *
+   * @param string $rid
+   *   The role ID to check.
+   *
+   * @return bool
+   *   Returns TRUE if the user has the role, otherwise FALSE.
+   */
+  public function hasRole($rid);
+
+  /**
+   * Add a role to a user.
+   *
+   * @param string $rid
+   *   The role ID to add.
+   */
+  public function addRole($rid);
+
+  /**
+   * Remove a role from a user.
+   *
+   * @param string $rid
+   *   The role ID to remove.
+   */
+  public function removeRole($rid);
+
+  /**
+   * Sets the username of this account.
+   *
+   * @param string $username
+   *   The new user name.
+   *
+   * @return \Drupal\user\UserInterface
+   *   The called user entity.
+   */
+  public function setUsername($username);
+
+  /**
+   * Returns the hashed password.
+   *
+   * @return string
+   *   The hashed password.
+   */
+  public function getPassword();
+
+  /**
+   * Sets the user password.
+   *
+   * @param string $password
+   *   The new unhashed password.
+   *
+   * @return \Drupal\user\UserInterface
+   *   The called user entity.
+   */
+  public function setPassword($password);
+
+  /**
+   * Sets the email address of the user.
+   *
+   * @param string $mail
+   *   The new email address of the user.
+   *
+   * @return \Drupal\user\UserInterface
+   *   The called user entity.
+   */
+  public function setEmail($mail);
+
+  /**
+   * Returns the creation time of the user as a UNIX timestamp.
+   *
+   * @return int
+   *   Timestamp of the creation date.
+   */
+  public function getCreatedTime();
+
+  /**
+   * Sets the UNIX timestamp when the user last accessed the site..
+   *
+   * @param int $timestamp
+   *   Timestamp of the last access.
+   *
+   * @return \Drupal\user\UserInterface
+   *   The called user entity.
+   */
+  public function setLastAccessTime($timestamp);
+
+  /**
+   * Returns the UNIX timestamp when the user last logged in.
+   *
+   * @return int
+   *   Timestamp of the last login time.
+   */
+  public function getLastLoginTime();
+
+  /**
+   * Sets the UNIX timestamp when the user last logged in.
+   *
+   * @param int $timestamp
+   *   Timestamp of the last login time.
+   *
+   * @return \Drupal\user\UserInterface
+   *   The called user entity.
+   */
+  public function setLastLoginTime($timestamp);
+
+  /**
+   * Returns TRUE if the user is active.
+   *
+   * @return bool
+   *   TRUE if the user is active, false otherwise.
+   */
+  public function isActive();
+
+  /**
+   * Returns TRUE if the user is blocked.
+   *
+   * @return bool
+   *   TRUE if the user is blocked, false otherwise.
+   */
+  public function isBlocked();
+
+  /**
+   * Activates the user.
+   *
+   * @return \Drupal\user\UserInterface
+   *   The called user entity.
+   */
+  public function activate();
+
+  /**
+   * Blocks the user.
+   *
+   * @return \Drupal\user\UserInterface
+   *   The called user entity.
+   */
+  public function block();
+
+  /**
+   * Returns the email that was used when the user was registered.
+   *
+   * @return string
+   *   Initial email address of the user.
+   */
+  public function getInitialEmail();
+
+  /**
+   * Sets the existing plain text password.
+   *
+   * Required for validation when changing the password, name or email fields.
+   *
+   * @param string $password
+   *   The existing plain text password of the user.
+   *
+   * @return $this
+   */
+  public function setExistingPassword($password);
+
+  /**
+   * Checks the existing password if set.
+   *
+   * @param \Drupal\user\UserInterface $account_unchanged
+   *   The unchanged user entity to compare against.
+   *
+   * @return bool
+   *   TRUE if the correct existing password was provided.
+   *
+   * @see UserInterface::setExistingPassword()
+   */
+  public function checkExistingPassword(UserInterface $account_unchanged);
+
+}