* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace FOS\UserBundle\Model; use Symfony\Component\Security\Core\User\AdvancedUserInterface; /** * @author Thibault Duplessis * @author Johannes M. Schmitt */ interface UserInterface extends AdvancedUserInterface, \Serializable { const ROLE_DEFAULT = 'ROLE_USER'; const ROLE_SUPER_ADMIN = 'ROLE_SUPER_ADMIN'; /** * Returns the user unique id. * * @return mixed */ public function getId(); /** * Sets the username. * * @param string $username * * @return static */ public function setUsername($username); /** * Gets the canonical username in search and sort queries. * * @return string */ public function getUsernameCanonical(); /** * Sets the canonical username. * * @param string $usernameCanonical * * @return static */ public function setUsernameCanonical($usernameCanonical); /** * @param string|null $salt * * @return static */ public function setSalt($salt); /** * Gets email. * * @return string */ public function getEmail(); /** * Sets the email. * * @param string $email * * @return static */ public function setEmail($email); /** * Gets the canonical email in search and sort queries. * * @return string */ public function getEmailCanonical(); /** * Sets the canonical email. * * @param string $emailCanonical * * @return static */ public function setEmailCanonical($emailCanonical); /** * Gets the plain password. * * @return string */ public function getPlainPassword(); /** * Sets the plain password. * * @param string $password * * @return static */ public function setPlainPassword($password); /** * Sets the hashed password. * * @param string $password * * @return static */ public function setPassword($password); /** * Tells if the the given user has the super admin role. * * @return bool */ public function isSuperAdmin(); /** * @param bool $boolean * * @return static */ public function setEnabled($boolean); /** * Sets the super admin status. * * @param bool $boolean * * @return static */ public function setSuperAdmin($boolean); /** * Gets the confirmation token. * * @return string|null */ public function getConfirmationToken(); /** * Sets the confirmation token. * * @param string|null $confirmationToken * * @return static */ public function setConfirmationToken($confirmationToken); /** * Sets the timestamp that the user requested a password reset. * * @param null|\DateTime $date * * @return static */ public function setPasswordRequestedAt(\DateTime $date = null); /** * Checks whether the password reset request has expired. * * @param int $ttl Requests older than this many seconds will be considered expired * * @return bool */ public function isPasswordRequestNonExpired($ttl); /** * Sets the last login time. * * @param \DateTime|null $time * * @return static */ public function setLastLogin(\DateTime $time = null); /** * Never use this to check if this user has access to anything! * * Use the AuthorizationChecker, or an implementation of AccessDecisionManager * instead, e.g. * * $authorizationChecker->isGranted('ROLE_USER'); * * @param string $role * * @return bool */ public function hasRole($role); /** * Sets the roles of the user. * * This overwrites any previous roles. * * @param array $roles * * @return static */ public function setRoles(array $roles); /** * Adds a role to the user. * * @param string $role * * @return static */ public function addRole($role); /** * Removes a role to the user. * * @param string $role * * @return static */ public function removeRole($role); }