]> git.immae.eu Git - github/wallabag/wallabag.git/blobdiff - src/Wallabag/CoreBundle/Entity/User.php
implement FosUser
[github/wallabag/wallabag.git] / src / Wallabag / CoreBundle / Entity / User.php
index 1652170f7a7c8eefd2c1bcdd0674be4aedd29759..eeae331e29582b24752ea30873abee9e0d3ae89b 100644 (file)
@@ -4,122 +4,76 @@ namespace Wallabag\CoreBundle\Entity;
 
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\ORM\Mapping as ORM;
+use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
 use Symfony\Component\Security\Core\User\UserInterface;
 use Symfony\Component\Security\Core\User\AdvancedUserInterface;
 use Symfony\Component\Validator\Constraints as Assert;
 use JMS\Serializer\Annotation\ExclusionPolicy;
 use JMS\Serializer\Annotation\Expose;
+use FOS\UserBundle\Model\User as BaseUser;
 
 /**
- * User
+ * User.
  *
  * @ORM\Entity(repositoryClass="Wallabag\CoreBundle\Repository\UserRepository")
  * @ORM\Table
  * @ORM\HasLifecycleCallbacks()
  * @ExclusionPolicy("all")
+ *
+ * @UniqueEntity("email")
+ * @UniqueEntity("username")
  */
-class User implements AdvancedUserInterface, \Serializable
+class User extends BaseUser implements AdvancedUserInterface, \Serializable
 {
     /**
-     * @var integer
+     * @var int
      *
      * @Expose
      * @ORM\Column(name="id", type="integer")
      * @ORM\Id
      * @ORM\GeneratedValue(strategy="AUTO")
      */
-    private $id;
-
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="username", type="text")
-     * @Assert\NotBlank()
-     * @Assert\Length(
-     *      min = "3",
-     *      max = "255"
-     * )
-     */
-    private $username;
-
-    /**
-     * @var string
-     *
-     * @ORM\Column(type="string", length=32)
-     */
-    private $salt;
-
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="password", type="text")
-     */
-    private $password;
+    protected $id;
 
     /**
      * @var string
      *
      * @ORM\Column(name="name", type="text", nullable=true)
      */
-    private $name;
-
-    /**
-     * @var string
-     *
-     * @ORM\Column(name="email", type="text", nullable=false)
-     * @Assert\Email()
-     * @Assert\NotBlank()
-     */
-    private $email;
-
-    /**
-     * @ORM\Column(name="is_active", type="boolean", nullable=false)
-     */
-    private $isActive = true;
-
-    /**
-     * @ORM\Column(name="confirmation_token", type="string", nullable=true)
-     */
-    private $confirmationToken;
-
-    /**
-     * @ORM\Column(name="password_requested_at", type="datetime", nullable=true)
-     */
-    private $passwordRequestedAt;
+    protected $name;
 
     /**
      * @var date
      *
      * @ORM\Column(name="created_at", type="datetime")
      */
-    private $createdAt;
+    protected $createdAt;
 
     /**
      * @var date
      *
      * @ORM\Column(name="updated_at", type="datetime")
      */
-    private $updatedAt;
+    protected $updatedAt;
 
     /**
      * @ORM\OneToMany(targetEntity="Entry", mappedBy="user", cascade={"remove"})
      */
-    private $entries;
+    protected $entries;
 
     /**
      * @ORM\OneToOne(targetEntity="Config", mappedBy="user")
      */
-    private $config;
+    protected $config;
 
     /**
      * @ORM\OneToMany(targetEntity="Tag", mappedBy="user", cascade={"remove"})
      */
-    private $tags;
+    protected $tags;
 
     public function __construct()
     {
-        $this->isActive = true;
-        $this->salt     = md5(uniqid(null, true));
+        parent::__construct();
         $this->entries  = new ArrayCollection();
         $this->tags     = new ArrayCollection();
     }
@@ -138,58 +92,10 @@ class User implements AdvancedUserInterface, \Serializable
     }
 
     /**
-     * Get id
-     *
-     * @return integer
-     */
-    public function getId()
-    {
-        return $this->id;
-    }
-
-    /**
-     * Set username
+     * Set password.
      *
-     * @param  string $username
-     * @return User
-     */
-    public function setUsername($username)
-    {
-        $this->username = $username;
-
-        return $this;
-    }
-
-    /**
-     * Get username
+     * @param string $password
      *
-     * @return string
-     */
-    public function getUsername()
-    {
-        return $this->username;
-    }
-
-    /**
-     * @inheritDoc
-     */
-    public function getSalt()
-    {
-        return $this->salt;
-    }
-
-    /**
-     * @inheritDoc
-     */
-    public function getRoles()
-    {
-        return array('ROLE_USER');
-    }
-
-    /**
-     * Set password
-     *
-     * @param  string $password
      * @return User
      */
     public function setPassword($password)
@@ -204,19 +110,10 @@ class User implements AdvancedUserInterface, \Serializable
     }
 
     /**
-     * Get password
+     * Set name.
      *
-     * @return string
-     */
-    public function getPassword()
-    {
-        return $this->password;
-    }
-
-    /**
-     * Set name
+     * @param string $name
      *
-     * @param  string $name
      * @return User
      */
     public function setName($name)
@@ -227,7 +124,7 @@ class User implements AdvancedUserInterface, \Serializable
     }
 
     /**
-     * Get name
+     * Get name.
      *
      * @return string
      */
@@ -236,29 +133,6 @@ class User implements AdvancedUserInterface, \Serializable
         return $this->name;
     }
 
-    /**
-     * Set email
-     *
-     * @param  string $email
-     * @return User
-     */
-    public function setEmail($email)
-    {
-        $this->email = $email;
-
-        return $this;
-    }
-
-    /**
-     * Get email
-     *
-     * @return string
-     */
-    public function getEmail()
-    {
-        return $this->email;
-    }
-
     /**
      * @return string
      */
@@ -314,61 +188,17 @@ class User implements AdvancedUserInterface, \Serializable
     {
         return $this->tags;
     }
-    /**
-     * @inheritDoc
-     */
-    public function eraseCredentials()
-    {
-    }
-
-    /**
-     * @see \Serializable::serialize()
-     */
-    public function serialize()
-    {
-        return serialize(array(
-            $this->id,
-        ));
-    }
-
-    /**
-     * @see \Serializable::unserialize()
-     */
-    public function unserialize($serialized)
-    {
-        list(
-            $this->id,
-            ) = unserialize($serialized);
-    }
 
     public function isEqualTo(UserInterface $user)
     {
         return $this->username === $user->getUsername();
     }
 
-    public function isAccountNonExpired()
-    {
-        return true;
-    }
-
-    public function isAccountNonLocked()
-    {
-        return true;
-    }
-
-    public function isCredentialsNonExpired()
-    {
-        return true;
-    }
-
-    public function isEnabled()
-    {
-        return $this->isActive;
-    }
     /**
-     * Set config
+     * Set config.
+     *
+     * @param \Wallabag\CoreBundle\Entity\Config $config
      *
-     * @param  \Wallabag\CoreBundle\Entity\Config $config
      * @return User
      */
     public function setConfig(\Wallabag\CoreBundle\Entity\Config $config = null)
@@ -379,7 +209,7 @@ class User implements AdvancedUserInterface, \Serializable
     }
 
     /**
-     * Get config
+     * Get config.
      *
      * @return \Wallabag\CoreBundle\Entity\Config
      */
@@ -387,50 +217,4 @@ class User implements AdvancedUserInterface, \Serializable
     {
         return $this->config;
     }
-
-    /**
-     * Set confirmationToken
-     *
-     * @param  string $confirmationToken
-     * @return User
-     */
-    public function setConfirmationToken($confirmationToken)
-    {
-        $this->confirmationToken = $confirmationToken;
-
-        return $this;
-    }
-
-    /**
-     * Get confirmationToken
-     *
-     * @return string
-     */
-    public function getConfirmationToken()
-    {
-        return $this->confirmationToken;
-    }
-
-    /**
-     * Set passwordRequestedAt
-     *
-     * @param  \DateTime $passwordRequestedAt
-     * @return User
-     */
-    public function setPasswordRequestedAt($passwordRequestedAt)
-    {
-        $this->passwordRequestedAt = $passwordRequestedAt;
-
-        return $this;
-    }
-
-    /**
-     * Get passwordRequestedAt
-     *
-     * @return \DateTime
-     */
-    public function getPasswordRequestedAt()
-    {
-        return $this->passwordRequestedAt;
-    }
 }