Compare commits
	
		
			2 Commits
		
	
	
		
			master
			...
			ulmus-user
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 1c2ce07179 | ||
|  | af8b686e3b | 
| @ -1,34 +1,45 @@ | |||||||
| <?php | <?php | ||||||
| 
 | 
 | ||||||
| use Ulmus\User\{Entity, | use Lean\Factory\HttpFactoryInterface; | ||||||
|  | 
 | ||||||
|  | use Ulmus\User\{ | ||||||
|  |     Authorize\HeaderAuthentication, | ||||||
|  |     Entity, | ||||||
|     Lib\Authenticate, |     Lib\Authenticate, | ||||||
|     Lib\Authorize, |     Lib\Authorize, | ||||||
|  |     Middleware\AuthenticationMiddleware, | ||||||
|     Middleware\HeaderAuthenticationMiddleware, |     Middleware\HeaderAuthenticationMiddleware, | ||||||
|     Middleware\PostRequestAuthenticationMiddleware, |     Middleware\PostRequestAuthenticationMiddleware, | ||||||
|     Authorize\PostRequestAuthentication}; |     Authorize\PostRequestAuthentication | ||||||
| 
 | }; | ||||||
| use Picea\Picea; |  | ||||||
| 
 | 
 | ||||||
| use Storage\{ Cookie, Session }; | use Storage\{ Cookie, Session }; | ||||||
|  | use Psr\Container\ContainerInterface; | ||||||
|  | use Picea\Picea; | ||||||
| 
 | 
 | ||||||
| use function DI\{get, create}; | use function DI\{get, autowire, create}; | ||||||
| 
 | 
 | ||||||
| return [ | return [ | ||||||
|     Authenticate::class => create(Authenticate::class)->constructor(get(Entity\UserInterface::class), get(Session::class), get(Cookie::class), get('authentication.method')), |  | ||||||
| 
 |  | ||||||
|     Authorize::class => create(Authorize::class)->constructor(get(Entity\UserInterface::class), get(Session::class), get(Cookie::class), get('authentication.method')), |     Authorize::class => create(Authorize::class)->constructor(get(Entity\UserInterface::class), get(Session::class), get(Cookie::class), get('authentication.method')), | ||||||
| 
 | 
 | ||||||
|     HeaderAuthenticationMiddleware::class => create(HeaderAuthenticationMiddleware::class)->constructor(get(Authorize::class), get(Entity\UserInterface::class), get('authorize.error')), |     Authenticate::class => create(Authenticate::class)->constructor(get(Entity\UserInterface::class), get(Session::class), get(Cookie::class), get('authentication.method')), | ||||||
| 
 | 
 | ||||||
|     PostRequestAuthentication::class => create(PostRequestAuthentication::class)->constructor(get(Authenticate::class), "email", "email", "password"), |     AuthenticationMiddleware::class => create(AuthenticationMiddleware::class)->constructor(get(Authorize::class), get('authorize.error')), | ||||||
| 
 | 
 | ||||||
|     PostRequestAuthenticationMiddleware::class => create(PostRequestAuthenticationMiddleware::class)->constructor(get(Entity\UserInterface::class), get('authentication.error'), get(PostRequestAuthentication::class)), |     HeaderAuthentication::class => autowire(HeaderAuthentication::class), | ||||||
|  | 
 | ||||||
|  |     HeaderAuthenticationMiddleware::class => create(HeaderAuthenticationMiddleware::class)->constructor(get(HeaderAuthentication::class)), | ||||||
|  | 
 | ||||||
|  |     PostRequestAuthentication::class => create(PostRequestAuthentication::class)->constructor("email", "email", "password"), | ||||||
|  | 
 | ||||||
|  |     PostRequestAuthenticationMiddleware::class => create(PostRequestAuthenticationMiddleware::class)->constructor(get(PostRequestAuthentication::class)), | ||||||
| 
 | 
 | ||||||
|     'authentication.method' => null, |     'authentication.method' => null, | ||||||
| 
 | 
 | ||||||
|     'authorize.error' => function($c) { |     'authorize.error' => function(ContainerInterface $c) { | ||||||
|         return function(array $errorData) use ($c) { |         return function(array $errorData) use ($c) { | ||||||
|             return $c->get(\Lean\Factory\HttpFactoryInterface::class)::createJsonResponse($errorData + [ |             return $c->get(HttpFactoryInterface::class)::createJsonResponse($errorData + [ | ||||||
|  | 
 | ||||||
|                 'api.error' => "Authorization failed", |                 'api.error' => "Authorization failed", | ||||||
|                 'api.datetime' => (new \DateTime)->format(\DateTime::ATOM), |                 'api.datetime' => (new \DateTime)->format(\DateTime::ATOM), | ||||||
|             ], 403); |             ], 403); | ||||||
| @ -36,8 +47,8 @@ return [ | |||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     'authentication.error' => function($c, Picea $picea) { |     'authentication.error' => function($c, Picea $picea) { | ||||||
|         return function($message) use ($picea, $c) { |         return function($message) use ($c, $picea) { | ||||||
|             return $c->get(\Lean\Factory\HttpFactoryInterface::class)::createHtmlResponse($picea->renderHtml('lean/error/500', [ |             return $c->get(HttpFactoryInterface::class)::createHtmlResponse($picea->renderHtml('lean/error/500', [ | ||||||
|                 'title' => "Authentication failed", |                 'title' => "Authentication failed", | ||||||
|                 'subtitle' => "", |                 'subtitle' => "", | ||||||
|                 'message' => $message, |                 'message' => $message, | ||||||
|  | |||||||
| @ -1,11 +1,15 @@ | |||||||
| <?php | <?php | ||||||
| 
 | 
 | ||||||
|  | use Psr\Container\ContainerInterface; | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| use Lean\ApplicationStrategy\{ ThrowableHandler, ThrowableHandlerInterface, NotFoundDecoratorInterface, NotFoundDecorator }; | use Lean\ApplicationStrategy\{ ThrowableHandler, ThrowableHandlerInterface, NotFoundDecoratorInterface, NotFoundDecorator }; | ||||||
| use function DI\autowire, DI\create, DI\get; |  | ||||||
| 
 |  | ||||||
| use Psr\Http\Message\ServerRequestInterface; | use Psr\Http\Message\ServerRequestInterface; | ||||||
| 
 |  | ||||||
| use Laminas\{ Diactoros\ServerRequestFactory, HttpHandlerRunner\Emitter\EmitterInterface, HttpHandlerRunner\Emitter\SapiEmitter }; | use Laminas\{ Diactoros\ServerRequestFactory, HttpHandlerRunner\Emitter\EmitterInterface, HttpHandlerRunner\Emitter\SapiEmitter }; | ||||||
|  | use Lean\Factory\{ HttpFactory, HttpFactoryInterface }; | ||||||
|  | use Picea\Picea; | ||||||
|  | 
 | ||||||
|  | use function DI\autowire, DI\create, DI\get; | ||||||
| 
 | 
 | ||||||
| return [ | return [ | ||||||
|     ServerRequestInterface::class => function ($c) { |     ServerRequestInterface::class => function ($c) { | ||||||
| @ -15,6 +19,21 @@ return [ | |||||||
|     }, |     }, | ||||||
| 
 | 
 | ||||||
|     EmitterInterface::class => create(SapiEmitter::class), |     EmitterInterface::class => create(SapiEmitter::class), | ||||||
|  | 
 | ||||||
|  |     HttpFactoryInterface::class => create(HttpFactory::class), | ||||||
|  | 
 | ||||||
|  |     'error.401' => function(ContainerInterface $c, Picea $picea) { | ||||||
|  |         return $c->get(HttpFactoryInterface::class)::createHtmlResponse($picea->renderHtml("lean/error/401", []), 401); | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     'error.404' => function(ContainerInterface $c, Picea $picea) { | ||||||
|  |         return $c->get(HttpFactoryInterface::class)::createHtmlResponse($picea->renderHtml("lean/error/404", []), 404); | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|  |     'error.500' => function(ContainerInterface $c, Picea $picea) { | ||||||
|  |         return $c->get(HttpFactoryInterface::class)::createHtmlResponse($picea->renderHtml("lean/error/500", []), 500); | ||||||
|  |     }, | ||||||
|  | 
 | ||||||
|     ThrowableHandlerInterface::class => autowire(ThrowableHandler::class), |     ThrowableHandlerInterface::class => autowire(ThrowableHandler::class), | ||||||
|     NotFoundDecoratorInterface::class => autowire(NotFoundDecorator::class), |     NotFoundDecoratorInterface::class => autowire(NotFoundDecorator::class), | ||||||
| ]; | ]; | ||||||
|  | |||||||
							
								
								
									
										0
									
								
								skeleton/lean
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										0
									
								
								skeleton/lean
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							| @ -4,6 +4,7 @@ use function DI\autowire, DI\create, DI\get; | |||||||
| 
 | 
 | ||||||
| use %NAMESPACE%\Entity; | use %NAMESPACE%\Entity; | ||||||
| 
 | 
 | ||||||
|  | use Psr\Container\ContainerInterface; | ||||||
| use Psr\Http\Message\ServerRequestInterface; | use Psr\Http\Message\ServerRequestInterface; | ||||||
| 
 | 
 | ||||||
| use Ulmus\Entity\Field\Datetime, | use Ulmus\Entity\Field\Datetime, | ||||||
| @ -21,16 +22,18 @@ use TheBugs\Email\{ EmailConfiguration, MailerInterface, SwiftMailer }; | |||||||
| 
 | 
 | ||||||
| use Taxus\{ Taxus, PermissionGrantInterface }; | use Taxus\{ Taxus, PermissionGrantInterface }; | ||||||
| 
 | 
 | ||||||
|  | use Lean\Factory\HttpFactoryInterface; | ||||||
|  | 
 | ||||||
| return [ | return [ | ||||||
|     \Ulmus\User\Entity\UserInterface::class => autowire(Entity\User::class), |     \Ulmus\User\Entity\UserInterface::class => autowire(Entity\User::class), | ||||||
| 
 | 
 | ||||||
|     SecurityHandler::class => create(SecurityHandler::class)->constructor(function() { |     SecurityHandler::class => create(SecurityHandler::class)->constructor(function(ContainerInterface $c) { | ||||||
|         return Lean\Factory\HttpFactory::createRedirectResponse(getenv("URL_BASE")."/login"); |         return $c->get(HttpFactoryInterface::class)::createRedirectResponse(getenv("URL_BASE")."/login"); | ||||||
|     }, get('authentication.unauthorize'), get(Taxus::class)), |     }, get('authentication.unauthorize'), get(Taxus::class)), | ||||||
| 
 | 
 | ||||||
|     'authentication.unauthorize' => function($c, Picea $picea) { |     'authentication.unauthorize' => function(ContainerInterface $c, Picea $picea) { | ||||||
|         return function($message) use ($picea) { |         return function($message) use ($c, $picea) { | ||||||
|             return Lean\Factory\HttpFactory::createHtmlResponse($picea->renderHtml('lean/error/401', [ |             return $c->get(HttpFactoryInterface::class)::createHtmlResponse($picea->renderHtml('lean/error/401', [ | ||||||
|                 'title' => "", |                 'title' => "", | ||||||
|                 'subtitle' => "", |                 'subtitle' => "", | ||||||
|                 'message' => $message, |                 'message' => $message, | ||||||
|  | |||||||
							
								
								
									
										8
									
								
								skeleton/meta/definitions/env/prod.php
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								skeleton/meta/definitions/env/prod.php
									
									
									
									
										vendored
									
									
								
							| @ -4,7 +4,7 @@ use Picea\Picea; | |||||||
| 
 | 
 | ||||||
| use Negundo\Client\{ NegundoMiddleware, SoftwareConfig }; | use Negundo\Client\{ NegundoMiddleware, SoftwareConfig }; | ||||||
| 
 | 
 | ||||||
| use Lean\Factory\HttpFactory; | use Lean\Factory\HttpFactoryInterface; | ||||||
| 
 | 
 | ||||||
| use Psr\Http\Server\MiddlewareInterface, | use Psr\Http\Server\MiddlewareInterface, | ||||||
|     Psr\Http\Message\ServerRequestInterface, |     Psr\Http\Message\ServerRequestInterface, | ||||||
| @ -31,11 +31,11 @@ return [ | |||||||
| 
 | 
 | ||||||
|     "errorHandler" => create(NegundoMiddleware::class)->constructor(get(SoftwareConfig::class), null, get('app.errorhandler.html')), |     "errorHandler" => create(NegundoMiddleware::class)->constructor(get(SoftwareConfig::class), null, get('app.errorhandler.html')), | ||||||
| 
 | 
 | ||||||
|     'app.errorhandler.html' => function($c, Picea $picea) { |     'app.errorhandler.html' => function(\Psr\Container\ContainerInterface $c, Picea $picea) { | ||||||
|         return function(\Throwable $exception) use ($picea) { |         return function(\Throwable $exception) use ($c, $picea) { | ||||||
|             error_log($exception->getMessage()); |             error_log($exception->getMessage()); | ||||||
| 
 | 
 | ||||||
|             return HttpFactory::createHtmlResponse($picea->renderHtml('lean/error/500', [ |             return $c->get(HttpFactoryInterface::class)::createHtmlResponse($picea->renderHtml('lean/error/500', [ | ||||||
|                 'title' => "Une erreur s'est produite lors de l'exécution du script.", |                 'title' => "Une erreur s'est produite lors de l'exécution du script.", | ||||||
|                 'subtitle' => "Êtes-vous connecté avec le bon compte ?", |                 'subtitle' => "Êtes-vous connecté avec le bon compte ?", | ||||||
|                 'message' => $exception->getMessage(), |                 'message' => $exception->getMessage(), | ||||||
|  | |||||||
| @ -30,5 +30,6 @@ class ApplicationStrategy extends Strategy\ApplicationStrategy { | |||||||
|     public function getThrowableHandler(): MiddlewareInterface |     public function getThrowableHandler(): MiddlewareInterface | ||||||
|     { |     { | ||||||
|         return $this->getContainer()->get(ThrowableHandlerInterface::class); |         return $this->getContainer()->get(ThrowableHandlerInterface::class); | ||||||
|  | 
 | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @ -34,7 +34,7 @@ class NotFoundDecorator implements NotFoundDecoratorInterface | |||||||
|             return $this->throw404($request); |             return $this->throw404($request); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         return $handler->handle($request);; |         return $handler->handle($request); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public function throw404(ServerRequestInterface $request) : ResponseInterface |     public function throw404(ServerRequestInterface $request) : ResponseInterface | ||||||
|  | |||||||
| @ -2,9 +2,6 @@ | |||||||
| 
 | 
 | ||||||
| namespace Lean\Factory; | namespace Lean\Factory; | ||||||
| 
 | 
 | ||||||
| use Laminas\Diactoros\Response\{EmptyResponse, HtmlResponse, JsonResponse, RedirectResponse, TextResponse}; |  | ||||||
| use Lean\Response\{ DownloadResponse, ImageResponse, FileDownloadResponse, PdfResponse }; |  | ||||||
| use Laminas\Diactoros\Response; |  | ||||||
| use Psr\Http\Message\ResponseInterface; | use Psr\Http\Message\ResponseInterface; | ||||||
| 
 | 
 | ||||||
| interface HttpFactoryInterface | interface HttpFactoryInterface | ||||||
|  | |||||||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 40 KiB | 
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user