From b9bb68c8ac5fb115791562e7a02c5ac958756eb0 Mon Sep 17 00:00:00 2001 From: Igor Scheller Date: Sun, 1 Mar 2020 03:22:52 +0100 Subject: [PATCH] AuthController: Use configured home_site --- src/Controllers/AuthController.php | 9 ++++++++- tests/Unit/Controllers/AuthControllerTest.php | 19 ++++++++++++------- 2 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/Controllers/AuthController.php b/src/Controllers/AuthController.php index 7892064b..9fc46f2e 100644 --- a/src/Controllers/AuthController.php +++ b/src/Controllers/AuthController.php @@ -3,6 +3,7 @@ namespace Engelsystem\Controllers; use Carbon\Carbon; +use Engelsystem\Config\Config; use Engelsystem\Helpers\Authenticator; use Engelsystem\Http\Request; use Engelsystem\Http\Response; @@ -23,6 +24,9 @@ class AuthController extends BaseController /** @var UrlGeneratorInterface */ protected $url; + /** @var Config */ + protected $config; + /** @var Authenticator */ protected $auth; @@ -36,17 +40,20 @@ class AuthController extends BaseController * @param Response $response * @param SessionInterface $session * @param UrlGeneratorInterface $url + * @param Config $config * @param Authenticator $auth */ public function __construct( Response $response, SessionInterface $session, UrlGeneratorInterface $url, + Config $config, Authenticator $auth ) { $this->response = $response; $this->session = $session; $this->url = $url; + $this->config = $config; $this->auth = $auth; } @@ -100,7 +107,7 @@ class AuthController extends BaseController $user->last_login_at = new Carbon(); $user->save(['touch' => false]); - return $this->response->redirectTo('news'); + return $this->response->redirectTo($this->config->get('home_site')); } /** diff --git a/tests/Unit/Controllers/AuthControllerTest.php b/tests/Unit/Controllers/AuthControllerTest.php index a12ed6d6..aa1194a2 100644 --- a/tests/Unit/Controllers/AuthControllerTest.php +++ b/tests/Unit/Controllers/AuthControllerTest.php @@ -2,6 +2,7 @@ namespace Engelsystem\Test\Unit\Controllers; +use Engelsystem\Config\Config; use Engelsystem\Controllers\AuthController; use Engelsystem\Helpers\Authenticator; use Engelsystem\Http\Exceptions\ValidationException; @@ -33,8 +34,9 @@ class AuthControllerTest extends TestCase $response = $this->createMock(Response::class); /** @var SessionInterface|MockObject $session */ /** @var UrlGeneratorInterface|MockObject $url */ + /** @var Config $config */ /** @var Authenticator|MockObject $auth */ - list(, $session, $url, $auth) = $this->getMocks(); + list(, $session, $url, $config, $auth) = $this->getMocks(); $session->expects($this->once()) ->method('get') @@ -45,7 +47,7 @@ class AuthControllerTest extends TestCase ->with('pages/login') ->willReturn($response); - $controller = new AuthController($response, $session, $url, $auth); + $controller = new AuthController($response, $session, $url, $config, $auth); $controller->login(); } @@ -60,8 +62,9 @@ class AuthControllerTest extends TestCase /** @var Response|MockObject $response */ $response = $this->createMock(Response::class); /** @var UrlGeneratorInterface|MockObject $url */ + /** @var Config $config */ /** @var Authenticator|MockObject $auth */ - list(, , $url, $auth) = $this->getMocks(); + list(, , $url, $config, $auth) = $this->getMocks(); $session = new Session(new MockArraySessionStorage()); /** @var Validator|MockObject $validator */ $validator = new Validator(); @@ -97,7 +100,7 @@ class AuthControllerTest extends TestCase ->willReturn($response); // No credentials - $controller = new AuthController($response, $session, $url, $auth); + $controller = new AuthController($response, $session, $url, $config, $auth); $controller->setValidator($validator); try { $controller->postLogin($request); @@ -133,8 +136,9 @@ class AuthControllerTest extends TestCase /** @var Response $response */ /** @var SessionInterface|MockObject $session */ /** @var UrlGeneratorInterface|MockObject $url */ + /** @var Config $config */ /** @var Authenticator|MockObject $auth */ - list($response, $session, $url, $auth) = $this->getMocks(); + list($response, $session, $url, $config, $auth) = $this->getMocks(); $session->expects($this->once()) ->method('invalidate'); @@ -144,7 +148,7 @@ class AuthControllerTest extends TestCase ->with('/') ->willReturn('https://foo.bar/'); - $controller = new AuthController($response, $session, $url, $auth); + $controller = new AuthController($response, $session, $url, $config, $auth); $return = $controller->logout(); $this->assertEquals(['https://foo.bar/'], $return->getHeader('location')); @@ -160,9 +164,10 @@ class AuthControllerTest extends TestCase $session = $this->getMockForAbstractClass(SessionInterface::class); /** @var UrlGeneratorInterface|MockObject $url */ $url = $this->getMockForAbstractClass(UrlGeneratorInterface::class); + $config = new Config(['home_site' => 'news']); /** @var Authenticator|MockObject $auth */ $auth = $this->createMock(Authenticator::class); - return [$response, $session, $url, $auth]; + return [$response, $session, $url, $config, $auth]; } }