From 2378245dbfb5e6361e72caee716e56a5db50e671 Mon Sep 17 00:00:00 2001 From: Dave Mc Nicoll Date: Wed, 8 Nov 2023 06:52:17 -0500 Subject: [PATCH] - Removed authentication from controller, now handled by middleware --- meta/definitions/authorize.php | 2 +- meta/definitions/routes.php | 12 ++++++++++-- skeleton/meta/definitions/definitions.php | 10 ++++++---- skeleton/src/Lib/ControllerTrait.php | 15 ++++++--------- src/Application.php | 2 -- 5 files changed, 23 insertions(+), 18 deletions(-) diff --git a/meta/definitions/authorize.php b/meta/definitions/authorize.php index b5fbecd..a8a02c7 100644 --- a/meta/definitions/authorize.php +++ b/meta/definitions/authorize.php @@ -15,7 +15,7 @@ use Storage\{ Cookie, Session }; use function DI\{get, autowire, create}; return [ - Authenticate::class => create(Authenticate::class)->constructor(get(Session::class), get(Cookie::class), get('authentication.method')), + Authenticate::class => create(Authenticate::class)->constructor(get(Entity\UserInterface::class), get(Session::class), get(Cookie::class), get('authentication.method')), HeaderAuthenticationMiddleware::class => create(HeaderAuthenticationMiddleware::class)->constructor(get(Entity\UserInterface::class), get('authorize.error')), diff --git a/meta/definitions/routes.php b/meta/definitions/routes.php index ee3e7a0..8cae467 100644 --- a/meta/definitions/routes.php +++ b/meta/definitions/routes.php @@ -15,6 +15,11 @@ use Notes\Breadcrumb\Breadcrumb; use Storage\SessionMiddleware; +use Ulmus\User\Middleware\{ + HeaderAuthenticationMiddleware, + PostRequestAuthenticationMiddleware +}; + return [ Lean\Routing::class => autowire(Lean\Routing::class), @@ -44,14 +49,17 @@ return [ "dump", "errorHandler", SessionMiddleware::class, CronardMiddleware::class, Mcnd\Event\EventMiddleware::class, Mcnd\CLI\CliMiddleware::class, ], - 'app.middlewares' => [], + 'app.middlewares' => [ + HeaderAuthenticationMiddleware::class, + PostRequestAuthenticationMiddleware::class, + ], 'routes.list' => function($c) { return function (ContainerInterface $container) { $router = $container->get(Router::class); foreach([ 'routes.middlewares', 'app.middlewares' ] as $key) { - if ($container->has('app.middlewares')) { + if ( $container->has($key) ) { foreach ($container->get($key) as $i => $middleware) { if ($container->has($middleware)) { $router->middleware($container->get($middleware)); diff --git a/skeleton/meta/definitions/definitions.php b/skeleton/meta/definitions/definitions.php index 90ea4f2..ed85eec 100644 --- a/skeleton/meta/definitions/definitions.php +++ b/skeleton/meta/definitions/definitions.php @@ -47,9 +47,11 @@ return array_merge( require("$dir/security.php"), require("$dir/env/" . getenv('APP_ENV') . ".php"), [ - 'config' => function () { return array_replace( - require(getenv("META_PATH")."/config.php"), - Lean\Lean::autoloadConfigFromComposerExtra(), - ); } + 'config' => function () { + return array_merge_recursive( + Lean\Lean::autoloadConfigFromComposerExtra(), + require(getenv("META_PATH")."/config.php") + ); + } ] ); diff --git a/skeleton/src/Lib/ControllerTrait.php b/skeleton/src/Lib/ControllerTrait.php index 5fd2679..4c1a09a 100644 --- a/skeleton/src/Lib/ControllerTrait.php +++ b/skeleton/src/Lib/ControllerTrait.php @@ -5,36 +5,33 @@ namespace %NAMESPACE%\Lib; use Picea\Picea; use Storage\Session; use Ulmus\User\Entity\User; -use Ulmus\User\Lib\Authenticate; use Notes\Route\Attribute\Object\Route; use Notes\Security\Attribute\Security; use %NAMESPACE%\{ Entity, Lib, Form }; use Mcnd\Event\EventManager; +use Ulmus\User\Entity\UserInterface; #[Security(locked: false)] #[Route(method: ['GET', 'POST', ])] trait ControllerTrait { use \Lean\ControllerTrait; - public ? \Ulmus\User\Entity\User $user; - - protected Authenticate $authenticate; + public ? UserInterface $user; protected EventManager $eventManager; - public function __construct(Picea $picea, Session $session, Authenticate $authenticate, \Notes\Breadcrumb\Breadcrumb $breadcrumb, EventManager $eventManager) { - $this->initializeController($picea, $session, $authenticate, $breadcrumb, $eventManager); + public function __construct(Picea $picea, Session $session, UserInterface $user, \Notes\Breadcrumb\Breadcrumb $breadcrumb, EventManager $eventManager) { + $this->initializeController($picea, $session, $user, $breadcrumb, $eventManager); } - public function initializeController(Picea $picea, Session $session, Authenticate $authenticate, \Notes\Breadcrumb\Breadcrumb $breadcrumb, EventManager $eventManager) { + public function initializeController(Picea $picea, Session $session, UserInterface $user, \Notes\Breadcrumb\Breadcrumb $breadcrumb, EventManager $eventManager) { $this->picea = $picea; - $this->authenticate = $authenticate; $this->session = $session; $this->eventManager = $eventManager; $this->breadcrumb = $breadcrumb; - $this->user = $authenticate->rememberMe( Entity\User::repository() ) ?: new Entity\User(); + $this->user = $user; } } \ No newline at end of file diff --git a/src/Application.php b/src/Application.php index 1b0cec1..f242282 100644 --- a/src/Application.php +++ b/src/Application.php @@ -1,9 +1,7 @@