diff --git a/meta/definitions/event.php b/meta/definitions/event.php index 7cb85dc..5cfa378 100644 --- a/meta/definitions/event.php +++ b/meta/definitions/event.php @@ -1,8 +1,6 @@ autowire(Event\EventManager::class), @@ -25,6 +26,7 @@ return [ Event\EventDefinition::class => function($c) { $extension = $c->has(\Picea\Extension\UrlExtension::class) ? $c->get(\Picea\Extension\UrlExtension::class) : null; + $user = $c->get(UserInterface::class); return new Event\EventDefinition([ new class($extension) implements RoutingCompileRoutes { @@ -40,7 +42,12 @@ return [ } }, - new class() implements RoutingMapRoutes { + new class($user) implements RoutingMapRoutes { + + public function __construct( + protected UserInterface $user + ) {} + public function execute(Routing $routing, ContainerInterface $container, ServerRequestInterface & $request, Route $attribute) : void { $class = $attribute->class; @@ -54,7 +61,7 @@ return [ $securityHandler = $container->get(SecurityHandler::class); if ( $redirect = $securityHandler->verify($class, $method) ) { - if ( empty($object->user) || ! $object->user->logged ) { + if (! $this->user->loggedIn() ) { if ($container->has(Session::class)) { $container->get(Session::class)->set('redirectedFrom', (string)$request->getUri()); } @@ -65,7 +72,7 @@ return [ } if ( $securityHandler->isLocked($class, $method) && $container->has(Taxus::class)) { - if ( $forbidden = $securityHandler->taxus($class, $method, $object->user ?? null) ) { + if ( $forbidden = $securityHandler->taxus($class, $method, $this->user) ) { $routing->response = $forbidden; return; diff --git a/src/ControllerTrait.php b/src/ControllerTrait.php index 6a7feb5..265267d 100644 --- a/src/ControllerTrait.php +++ b/src/ControllerTrait.php @@ -20,8 +20,8 @@ use function file_get_contents; #[Route(method: [ "GET", "POST" ])] trait ControllerTrait { - #[Inject] - public \Notes\Breadcrumb\Breadcrumb $breadcrumb; + ##[Inject] + # public \Notes\Breadcrumb\Breadcrumb $breadcrumb; #[Inject] public Session $session; diff --git a/src/Event/RoutingMapRoutes.php b/src/Event/RoutingMapRoutes.php index e448574..eda90cf 100644 --- a/src/Event/RoutingMapRoutes.php +++ b/src/Event/RoutingMapRoutes.php @@ -6,6 +6,7 @@ use Lean\Routing; use Notes\Route\Attribute\Method\Route; use Psr\Container\ContainerInterface; use Psr\Http\Message\{ ResponseInterface, ServerRequestInterface }; +use Ulmus\User\Entity\UserInterface; interface RoutingMapRoutes { public function execute(Routing $routing, ContainerInterface $container, ServerRequestInterface & $request, Route $attribute) : void;