* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Sonata\UserBundle\Model; use FOS\UserBundle\Entity\User as AbstractedUser; /** * Represents a User model. */ abstract class User extends AbstractedUser implements UserInterface { /** * @var \DateTime */ protected $createdAt; /** * @var \DateTime */ protected $updatedAt; /** * @var string */ protected $twoStepVerificationCode; /** * @var \DateTime */ protected $dateOfBirth; /** * @var string */ protected $firstname; /** * @var string */ protected $lastname; /** * @var string */ protected $website; /** * @var string */ protected $biography; /** * @var string */ protected $gender = UserInterface::GENDER_UNKNOWN; // set the default to unknown /** * @var string */ protected $locale; /** * @var string */ protected $timezone; /** * @var string */ protected $phone; /** * @var string */ protected $facebookUid; /** * @var string */ protected $facebookName; /** * @var string */ protected $facebookData; /** * @var string */ protected $twitterUid; /** * @var string */ protected $twitterName; /** * @var string */ protected $twitterData; /** * @var string */ protected $gplusUid; /** * @var string */ protected $gplusName; /** * @var string */ protected $gplusData; /** * @var string */ protected $token; /** * Returns a string representation. * * @return string */ public function __toString() { return $this->getUsername() ?: '-'; } /** * Sets the creation date. * * @param \DateTime|null $createdAt * * @return User */ public function setCreatedAt(\DateTime $createdAt = null) { $this->createdAt = $createdAt; return $this; } /** * Returns the creation date. * * @return \DateTime|null */ public function getCreatedAt() { return $this->createdAt; } /** * Sets the last update date. * * @param \DateTime|null $updatedAt * * @return User */ public function setUpdatedAt(\DateTime $updatedAt = null) { $this->updatedAt = $updatedAt; return $this; } /** * Returns the last update date. * * @return \DateTime|null */ public function getUpdatedAt() { return $this->updatedAt; } /** * Returns the expiration date. * * @return \DateTime|null */ public function getExpiresAt() { return $this->expiresAt; } /** * Set expiration date. * * @param \DateTime|null $date * * @return User */ public function setExpiresAt(\DateTime $date = null) { $this->expiresAt = $date; return $this; } /** * Returns the credentials expiration date. * * @return \DateTime */ public function getCredentialsExpireAt() { return $this->credentialsExpireAt; } /** * Sets the credentials expiration date. * * @param \DateTime|null $date * * @return User */ public function setCredentialsExpireAt(\DateTime $date = null) { $this->credentialsExpireAt = $date; return $this; } /** * Sets the user groups. * * @param array $groups * * @return User */ public function setGroups($groups) { foreach ($groups as $group) { $this->addGroup($group); } return $this; } /** * Sets the two-step verification code. * * @param string $twoStepVerificationCode * * @return User */ public function setTwoStepVerificationCode($twoStepVerificationCode) { $this->twoStepVerificationCode = $twoStepVerificationCode; return $this; } /** * Returns the two-step verification code. * * @return string */ public function getTwoStepVerificationCode() { return $this->twoStepVerificationCode; } /** * @param string $biography * * @return User */ public function setBiography($biography) { $this->biography = $biography; return $this; } /** * @return string */ public function getBiography() { return $this->biography; } /** * @param \DateTime $dateOfBirth * * @return User */ public function setDateOfBirth($dateOfBirth) { $this->dateOfBirth = $dateOfBirth; return $this; } /** * @return \DateTime */ public function getDateOfBirth() { return $this->dateOfBirth; } /** * @param string $facebookData * * @return User */ public function setFacebookData($facebookData) { $this->facebookData = $facebookData; return $this; } /** * @return string */ public function getFacebookData() { return $this->facebookData; } /** * @param string $facebookName * * @return User */ public function setFacebookName($facebookName) { $this->facebookName = $facebookName; return $this; } /** * @return string */ public function getFacebookName() { return $this->facebookName; } /** * @param string $facebookUid * * @return User */ public function setFacebookUid($facebookUid) { $this->facebookUid = $facebookUid; return $this; } /** * @return string */ public function getFacebookUid() { return $this->facebookUid; } /** * @param string $firstname * * @return User */ public function setFirstname($firstname) { $this->firstname = $firstname; return $this; } /** * @return string */ public function getFirstname() { return $this->firstname; } /** * @param string $gender * * @return User */ public function setGender($gender) { $this->gender = $gender; return $this; } /** * @return string */ public function getGender() { return $this->gender; } /** * @param string $gplusData * * @return User */ public function setGplusData($gplusData) { $this->gplusData = $gplusData; return $this; } /** * @return string */ public function getGplusData() { return $this->gplusData; } /** * @param string $gplusName * * @return User */ public function setGplusName($gplusName) { $this->gplusName = $gplusName; return $this; } /** * @return string */ public function getGplusName() { return $this->gplusName; } /** * @param string $gplusUid * * @return User */ public function setGplusUid($gplusUid) { $this->gplusUid = $gplusUid; return $this; } /** * @return string */ public function getGplusUid() { return $this->gplusUid; } /** * @param string $lastname * * @return User */ public function setLastname($lastname) { $this->lastname = $lastname; return $this; } /** * @return string */ public function getLastname() { return $this->lastname; } /** * @param string $locale * * @return User */ public function setLocale($locale) { $this->locale = $locale; return $this; } /** * @return string */ public function getLocale() { return $this->locale; } /** * @param string $phone * * @return User */ public function setPhone($phone) { $this->phone = $phone; return $this; } /** * @return string */ public function getPhone() { return $this->phone; } /** * @param string $timezone * * @return User */ public function setTimezone($timezone) { $this->timezone = $timezone; return $this; } /** * @return string */ public function getTimezone() { return $this->timezone; } /** * @param string $twitterData * * @return User */ public function setTwitterData($twitterData) { $this->twitterData = $twitterData; return $this; } /** * @return string */ public function getTwitterData() { return $this->twitterData; } /** * @param string $twitterName * * @return User */ public function setTwitterName($twitterName) { $this->twitterName = $twitterName; return $this; } /** * @return string */ public function getTwitterName() { return $this->twitterName; } /** * @param string $twitterUid * * @return User */ public function setTwitterUid($twitterUid) { $this->twitterUid = $twitterUid; return $this; } /** * @return string */ public function getTwitterUid() { return $this->twitterUid; } /** * @param string $website * * @return User */ public function setWebsite($website) { $this->website = $website; return $this; } /** * @return string */ public function getWebsite() { return $this->website; } /** * @param string $token * * @return User */ public function setToken($token) { $this->token = $token; return $this; } /** * @return string */ public function getToken() { return $this->token; } /** * @return string */ public function getFullname() { return sprintf('%s %s', $this->getFirstname(), $this->getLastname()); } /** * @return array */ public function getRealRoles() { return $this->roles; } /** * @param array $roles * * @return User */ public function setRealRoles(array $roles) { $this->setRoles($roles); return $this; } }