From a42f38d9fb7906b785285fab2a09f8c2b9efe996 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Sun, 6 Nov 2016 12:02:39 +0100 Subject: Added a configuration to define the redirection after archiving an entry Fix #496 --- src/Wallabag/CoreBundle/Helper/Redirect.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/Wallabag/CoreBundle/Helper/Redirect.php') diff --git a/src/Wallabag/CoreBundle/Helper/Redirect.php b/src/Wallabag/CoreBundle/Helper/Redirect.php index c14c79d1..918d9266 100644 --- a/src/Wallabag/CoreBundle/Helper/Redirect.php +++ b/src/Wallabag/CoreBundle/Helper/Redirect.php @@ -3,6 +3,7 @@ namespace Wallabag\CoreBundle\Helper; use Symfony\Component\Routing\Router; +use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage; /** * Manage redirections to avoid redirecting to empty routes. @@ -10,10 +11,12 @@ use Symfony\Component\Routing\Router; class Redirect { private $router; + private $actionMarkAsRead; - public function __construct(Router $router) + public function __construct(Router $router, TokenStorage $token) { $this->router = $router; + $this->actionMarkAsRead = $token->getToken()->getUser()->getConfig()->getActionMarkAsRead(); } /** @@ -24,6 +27,10 @@ class Redirect */ public function to($url, $fallback = '') { + if ($this->actionMarkAsRead == 0) { + return $this->router->generate('homepage'); + } + if (null !== $url) { return $url; } -- cgit v1.2.3 From f052f1fd57e51c8ae5ac17587636d608619a2057 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Mon, 7 Nov 2016 09:30:37 +0100 Subject: Added constants for redirection values --- src/Wallabag/CoreBundle/Helper/Redirect.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/Wallabag/CoreBundle/Helper/Redirect.php') diff --git a/src/Wallabag/CoreBundle/Helper/Redirect.php b/src/Wallabag/CoreBundle/Helper/Redirect.php index 918d9266..59172db4 100644 --- a/src/Wallabag/CoreBundle/Helper/Redirect.php +++ b/src/Wallabag/CoreBundle/Helper/Redirect.php @@ -4,6 +4,7 @@ namespace Wallabag\CoreBundle\Helper; use Symfony\Component\Routing\Router; use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage; +use Wallabag\CoreBundle\Entity\Config; /** * Manage redirections to avoid redirecting to empty routes. @@ -27,7 +28,7 @@ class Redirect */ public function to($url, $fallback = '') { - if ($this->actionMarkAsRead == 0) { + if (Config::REDIRECT_TO_HOMEPAGE === $this->actionMarkAsRead) { return $this->router->generate('homepage'); } -- cgit v1.2.3 From 65cd8a4a9a1d15d962033f58276005a5f7716f3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Mon, 7 Nov 2016 10:26:05 +0100 Subject: Added tests --- src/Wallabag/CoreBundle/Helper/Redirect.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'src/Wallabag/CoreBundle/Helper/Redirect.php') diff --git a/src/Wallabag/CoreBundle/Helper/Redirect.php b/src/Wallabag/CoreBundle/Helper/Redirect.php index 59172db4..82792aec 100644 --- a/src/Wallabag/CoreBundle/Helper/Redirect.php +++ b/src/Wallabag/CoreBundle/Helper/Redirect.php @@ -3,7 +3,7 @@ namespace Wallabag\CoreBundle\Helper; use Symfony\Component\Routing\Router; -use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorage; +use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface; use Wallabag\CoreBundle\Entity\Config; /** @@ -12,12 +12,13 @@ use Wallabag\CoreBundle\Entity\Config; class Redirect { private $router; + private $tokenStorage; private $actionMarkAsRead; - public function __construct(Router $router, TokenStorage $token) + public function __construct(Router $router, TokenStorageInterface $tokenStorage) { $this->router = $router; - $this->actionMarkAsRead = $token->getToken()->getUser()->getConfig()->getActionMarkAsRead(); + $this->tokenStorage = $tokenStorage; } /** @@ -28,7 +29,13 @@ class Redirect */ public function to($url, $fallback = '') { - if (Config::REDIRECT_TO_HOMEPAGE === $this->actionMarkAsRead) { + $user = $this->tokenStorage->getToken() ? $this->tokenStorage->getToken()->getUser() : null; + + if (null === $user || !is_object($user)) { + return $url; + } + + if (Config::REDIRECT_TO_HOMEPAGE === $user->getConfig()->getActionMarkAsRead()) { return $this->router->generate('homepage'); } -- cgit v1.2.3 From 54fd55fda1eca050ba10fd41c68251cd2dcd02a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicolas=20L=C5=93uillet?= Date: Thu, 10 Nov 2016 15:50:10 +0100 Subject: Tried to fix tests --- src/Wallabag/CoreBundle/Helper/Redirect.php | 1 - 1 file changed, 1 deletion(-) (limited to 'src/Wallabag/CoreBundle/Helper/Redirect.php') diff --git a/src/Wallabag/CoreBundle/Helper/Redirect.php b/src/Wallabag/CoreBundle/Helper/Redirect.php index 82792aec..f78b7fe0 100644 --- a/src/Wallabag/CoreBundle/Helper/Redirect.php +++ b/src/Wallabag/CoreBundle/Helper/Redirect.php @@ -13,7 +13,6 @@ class Redirect { private $router; private $tokenStorage; - private $actionMarkAsRead; public function __construct(Router $router, TokenStorageInterface $tokenStorage) { -- cgit v1.2.3