diff --git a/app/config/config.yml b/app/config/config.yml
index a4d18c6d8..0d893ecfb 100644
--- a/app/config/config.yml
+++ b/app/config/config.yml
@@ -160,8 +160,6 @@ fos_user:
firewall_name: main
user_class: Wallabag\UserBundle\Entity\User
registration:
- form:
- type: wallabag_user_registration
confirmation:
enabled: true
diff --git a/src/Wallabag/CoreBundle/Command/InstallCommand.php b/src/Wallabag/CoreBundle/Command/InstallCommand.php
index 140fdf9e3..6ebbd93c0 100644
--- a/src/Wallabag/CoreBundle/Command/InstallCommand.php
+++ b/src/Wallabag/CoreBundle/Command/InstallCommand.php
@@ -188,9 +188,10 @@ class InstallCommand extends ContainerAwareCommand
$em = $this->getContainer()->get('doctrine.orm.entity_manager');
- $user = new User();
+ $userManager = $this->getContainer()->get('fos_user.user_manager');
+ $user = $userManager->createUser();
$user->setUsername($dialog->ask($this->defaultOutput, 'Username (default: wallabag) :', 'wallabag'));
- $user->setPassword($dialog->ask($this->defaultOutput, 'Password (default: wallabag) :', 'wallabag'));
+ $user->setPlainPassword($dialog->ask($this->defaultOutput, 'Password (default: wallabag) :', 'wallabag'));
$user->setEmail($dialog->ask($this->defaultOutput, 'Email:', ''));
$user->setEnabled(true);
diff --git a/src/Wallabag/CoreBundle/Form/Type/RegistrationType.php b/src/Wallabag/CoreBundle/Form/Type/RegistrationType.php
deleted file mode 100644
index 47d4f341c..000000000
--- a/src/Wallabag/CoreBundle/Form/Type/RegistrationType.php
+++ /dev/null
@@ -1,24 +0,0 @@
-add('name');
- }
-
- public function getParent()
- {
- return 'fos_user_registration';
- }
-
- public function getName()
- {
- return 'wallabag_user_registration';
- }
-}
diff --git a/src/Wallabag/CoreBundle/Resources/views/base.html.twig b/src/Wallabag/CoreBundle/Resources/views/base.html.twig
index 152c5c287..c94c00441 100644
--- a/src/Wallabag/CoreBundle/Resources/views/base.html.twig
+++ b/src/Wallabag/CoreBundle/Resources/views/base.html.twig
@@ -45,7 +45,7 @@
{% endblock %}
-
+
{% block content %}{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/forgotPassword.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/forgotPassword.html.twig
deleted file mode 100644
index 4476ea7b3..000000000
--- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/forgotPassword.html.twig
+++ /dev/null
@@ -1,31 +0,0 @@
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{% trans %}Forgot password{% endtrans %}{% endblock %}
-
-{% block body_class %}login{% endblock %}
-
-{% block menu %}{% endblock %}
-
-{% block content %}
-
-{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/reset.html.twig b/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/reset.html.twig
deleted file mode 100644
index fda88af21..000000000
--- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/reset.html.twig
+++ /dev/null
@@ -1,35 +0,0 @@
-{% extends "WallabagCoreBundle::layout.html.twig" %}
-
-{% block title %}{% trans %}Change password{% endtrans %}{% endblock %}
-
-{% block body_class %}login{% endblock %}
-
-{% block menu %}{% endblock %}
-
-{% block content %}
-
-{% endblock %}
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/public/css/main.css b/src/Wallabag/CoreBundle/Resources/views/themes/material/public/css/main.css
index 7a4e7df2f..eb33f042e 100755
--- a/src/Wallabag/CoreBundle/Resources/views/themes/material/public/css/main.css
+++ b/src/Wallabag/CoreBundle/Resources/views/themes/material/public/css/main.css
@@ -250,9 +250,14 @@ main ul.row {
}
.card .card-action a {
+ color: #ffffff;
margin: 0;
}
+.card .card-action a:hover {
+ color: #ffffff;
+}
+
.settings .div_tabs {
padding-bottom: 15px;
}
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/material/public/img/logo-other_themes.png b/src/Wallabag/CoreBundle/Resources/views/themes/material/public/img/logo-other_themes.png
index 32543a449..c90aa46f8 100755
Binary files a/src/Wallabag/CoreBundle/Resources/views/themes/material/public/img/logo-other_themes.png and b/src/Wallabag/CoreBundle/Resources/views/themes/material/public/img/logo-other_themes.png differ
diff --git a/src/Wallabag/UserBundle/Controller/ResettingController.php b/src/Wallabag/UserBundle/Controller/ResettingController.php
new file mode 100644
index 000000000..8aa1e2303
--- /dev/null
+++ b/src/Wallabag/UserBundle/Controller/ResettingController.php
@@ -0,0 +1,75 @@
+get('fos_user.resetting.form.factory');
+ /** @var $userManager \FOS\UserBundle\Model\UserManagerInterface */
+ $userManager = $this->get('fos_user.user_manager');
+ /** @var $dispatcher \Symfony\Component\EventDispatcher\EventDispatcherInterface */
+ $dispatcher = $this->get('event_dispatcher');
+
+ $user = $userManager->findUserByConfirmationToken($token);
+
+ if (null === $user) {
+ throw new NotFoundHttpException(sprintf('The user with "confirmation token" does not exist for value "%s"', $token));
+ }
+
+ $event = new GetResponseUserEvent($user, $request);
+ $dispatcher->dispatch(FOSUserEvents::RESETTING_RESET_INITIALIZE, $event);
+
+ if (null !== $event->getResponse()) {
+ return $event->getResponse();
+ }
+
+ $form = $formFactory->createForm();
+ $form->setData($user);
+
+ $form->handleRequest($request);
+
+ if ($form->isValid()) {
+ $event = new FormEvent($form, $request);
+ $dispatcher->dispatch(FOSUserEvents::RESETTING_RESET_SUCCESS, $event);
+
+ $userManager->updateUser($user);
+
+ if (null === $response = $event->getResponse()) {
+ $this->get('session')->getFlashBag()->add(
+ 'notice',
+ 'Password updated'
+ );
+ $url = $this->generateUrl('homepage');
+ $response = new RedirectResponse($url);
+ }
+
+ $dispatcher->dispatch(FOSUserEvents::RESETTING_RESET_COMPLETED, new FilterUserResponseEvent($user, $request, $response));
+
+ return $response;
+ }
+
+ return $this->render('FOSUserBundle:Resetting:reset.html.twig', array(
+ 'token' => $token,
+ 'form' => $form->createView(),
+ ));
+ }
+}
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register.html.twig
new file mode 100644
index 000000000..e5c1876b9
--- /dev/null
+++ b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register.html.twig
@@ -0,0 +1,20 @@
+{% extends "WallabagCoreBundle::layout.html.twig" %}
+
+{% block title %}{% trans %}create an account{% endtrans %}{% endblock %}
+
+{% block body_class %}login{% endblock %}
+
+{% block menu %}{% endblock %}
+{% block messages %}{% endblock %}
+
+{% block content %}
+
+{% endblock %}
+
+{% block footer %}
+{% endblock %}
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register_content.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register_content.html.twig
new file mode 100644
index 000000000..f1f899d25
--- /dev/null
+++ b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Registration/register_content.html.twig
@@ -0,0 +1,38 @@
+{% trans_default_domain 'FOSUserBundle' %}
+
+{{ form_errors(form) }}
+{{ form_widget(form._token) }}
+
+{% for flashMessage in app.session.flashbag.get('notice') %}
+
{{ flashMessage }}
+{% endfor %}
+
+
+ {{ form_errors(form.email) }}
+
+
+
+
+
+ {{ form_errors(form.username) }}
+
+
+
+
+
+ {{ form_errors(form.plainPassword.first) }}
+
+
+
+
+
+ {{ form_errors(form.plainPassword.second) }}
+
+
+
+
+
+
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/checkEmail.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/checkEmail.html.twig
similarity index 100%
rename from src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/checkEmail.html.twig
rename to src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/checkEmail.html.twig
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request.html.twig
new file mode 100644
index 000000000..10094e836
--- /dev/null
+++ b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request.html.twig
@@ -0,0 +1,20 @@
+{% extends "WallabagCoreBundle::layout.html.twig" %}
+
+{% block title %}{% trans %}Forgot password{% endtrans %}{% endblock %}
+
+{% block body_class %}login{% endblock %}
+
+{% block menu %}{% endblock %}
+{% block messages %}{% endblock %}
+
+{% block content %}
+
+{% endblock %}
+
+{% block footer %}
+{% endblock %}
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request_content.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request_content.html.twig
new file mode 100644
index 000000000..1f8da8d7a
--- /dev/null
+++ b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Resetting/request_content.html.twig
@@ -0,0 +1,17 @@
+{% trans_default_domain 'FOSUserBundle' %}
+
+{% trans %}Enter your email address below and we'll send you password reset instructions.{% endtrans %}
+
+{% if invalid_username is defined %}
+
{{ 'resetting.request.invalid_username'|trans({'%username%': invalid_username}) }}
+{% endif %}
+
+
+
+
+
+
+
diff --git a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/login.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Security/login.html.twig
similarity index 88%
rename from src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/login.html.twig
rename to src/Wallabag/UserBundle/Resources/views/themes/baggy/Security/login.html.twig
index 9a59dfc60..0e7bba0f0 100644
--- a/src/Wallabag/CoreBundle/Resources/views/themes/baggy/Security/login.html.twig
+++ b/src/Wallabag/UserBundle/Resources/views/themes/baggy/Security/login.html.twig
@@ -8,7 +8,7 @@
{% block messages %}{% endblock %}
{% block content %}
-
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/material/ChangePassword/changePassword_content.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/material/ChangePassword/changePassword_content.html.twig
new file mode 100644
index 000000000..e7b7318bf
--- /dev/null
+++ b/src/Wallabag/UserBundle/Resources/views/themes/material/ChangePassword/changePassword_content.html.twig
@@ -0,0 +1,12 @@
+{% trans_default_domain 'FOSUserBundle' %}
+
+
+
+
{{ 'registration.check_email'|trans({'%email%': user.email}) }}
+
+
+{% endblock fos_user_content %}
diff --git a/src/Wallabag/UserBundle/Resources/views/themes/material/Registration/confirmed.html.twig b/src/Wallabag/UserBundle/Resources/views/themes/material/Registration/confirmed.html.twig
new file mode 100644
index 000000000..c6d4d3d21
--- /dev/null
+++ b/src/Wallabag/UserBundle/Resources/views/themes/material/Registration/confirmed.html.twig
@@ -0,0 +1,17 @@
+{% extends "FOSUserBundle::layout.html.twig" %}
+
+{% trans_default_domain 'FOSUserBundle' %}
+
+{% block fos_user_content %}
+