From a1691859ca0cb4c1b360c34b05aa74bdba9e582a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Tue, 18 Aug 2015 11:08:45 +0200 Subject: implement FosUser --- src/Wallabag/CoreBundle/Command/InstallCommand.php | 1 + .../CoreBundle/DataFixtures/ORM/LoadUserData.php | 2 + src/Wallabag/CoreBundle/Entity/User.php | 250 +-------------------- .../Resources/views/Security/login.html.twig | 1 + .../views/themes/material/Entry/entries.html.twig | 1 - .../views/themes/material/Security/login.html.twig | 1 + .../Tests/Command/InstallCommandTest.php | 2 +- .../Tests/Controller/ConfigControllerTest.php | 4 +- 8 files changed, 20 insertions(+), 242 deletions(-) (limited to 'src') diff --git a/src/Wallabag/CoreBundle/Command/InstallCommand.php b/src/Wallabag/CoreBundle/Command/InstallCommand.php index 491c67f9..29d91109 100644 --- a/src/Wallabag/CoreBundle/Command/InstallCommand.php +++ b/src/Wallabag/CoreBundle/Command/InstallCommand.php @@ -192,6 +192,7 @@ class InstallCommand extends ContainerAwareCommand $user->setUsername($dialog->ask($this->defaultOutput, 'Username (default: wallabag) :', 'wallabag')); $user->setPassword($dialog->ask($this->defaultOutput, 'Password (default: wallabag) :', 'wallabag')); $user->setEmail($dialog->ask($this->defaultOutput, 'Email:', '')); + $user->setEnabled(true); $em->persist($user); diff --git a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadUserData.php b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadUserData.php index 1c7f9dfa..4ef53329 100644 --- a/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadUserData.php +++ b/src/Wallabag/CoreBundle/DataFixtures/ORM/LoadUserData.php @@ -19,6 +19,7 @@ class LoadUserData extends AbstractFixture implements OrderedFixtureInterface $userAdmin->setEmail('bigboss@wallabag.org'); $userAdmin->setUsername('admin'); $userAdmin->setPassword('mypassword'); + $userAdmin->setEnabled(true); $manager->persist($userAdmin); @@ -29,6 +30,7 @@ class LoadUserData extends AbstractFixture implements OrderedFixtureInterface $bobUser->setEmail('bobby@wallabag.org'); $bobUser->setUsername('bob'); $bobUser->setPassword('mypassword'); + $bobUser->setEnabled(true); $manager->persist($bobUser); diff --git a/src/Wallabag/CoreBundle/Entity/User.php b/src/Wallabag/CoreBundle/Entity/User.php index 510a1594..eeae331e 100644 --- a/src/Wallabag/CoreBundle/Entity/User.php +++ b/src/Wallabag/CoreBundle/Entity/User.php @@ -10,6 +10,7 @@ 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. @@ -22,7 +23,7 @@ use JMS\Serializer\Annotation\Expose; * @UniqueEntity("email") * @UniqueEntity("username") */ -class User implements AdvancedUserInterface, \Serializable +class User extends BaseUser implements AdvancedUserInterface, \Serializable { /** * @var int @@ -32,100 +33,49 @@ class User implements AdvancedUserInterface, \Serializable * @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)); - $this->entries = new ArrayCollection(); - $this->tags = new ArrayCollection(); + parent::__construct(); + $this->entries = new ArrayCollection(); + $this->tags = new ArrayCollection(); } /** @@ -141,56 +91,6 @@ class User implements AdvancedUserInterface, \Serializable $this->updatedAt = new \DateTime(); } - /** - * Get id. - * - * @return int - */ - public function getId() - { - return $this->id; - } - - /** - * Set username. - * - * @param string $username - * - * @return User - */ - public function setUsername($username) - { - $this->username = $username; - - return $this; - } - - /** - * Get username. - * - * @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. * @@ -209,16 +109,6 @@ class User implements AdvancedUserInterface, \Serializable return $this; } - /** - * Get password. - * - * @return string - */ - public function getPassword() - { - return $this->password; - } - /** * Set name. * @@ -243,30 +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 */ @@ -322,56 +188,12 @@ 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. * @@ -395,52 +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; - } } diff --git a/src/Wallabag/CoreBundle/Resources/views/Security/login.html.twig b/src/Wallabag/CoreBundle/Resources/views/Security/login.html.twig index f669574e..5437d20c 100644 --- a/src/Wallabag/CoreBundle/Resources/views/Security/login.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/Security/login.html.twig @@ -30,6 +30,7 @@
+ Forgot your password?
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig index 3711f6e5..1ecaecc5 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Entry/entries.html.twig @@ -58,7 +58,6 @@ {% endfor %} -
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/Security/login.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/material/Security/login.html.twig index 2c513ffe..c9979198 100644 --- a/src/Wallabag/CoreBundle/Resources/views/themes/material/Security/login.html.twig +++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/Security/login.html.twig @@ -44,6 +44,7 @@
+