58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| use function DI\autowire, DI\create, DI\get;
 | |
| 
 | |
| use %NAMESPACE%\Entity;
 | |
| 
 | |
| use Psr\Container\ContainerInterface;
 | |
| use Psr\Http\Message\ServerRequestInterface;
 | |
| 
 | |
| use Ulmus\Entity\Field\Datetime,
 | |
|     Ulmus\User\Lib\Authenticate;
 | |
| 
 | |
| use Storage\{ Session, Cookie };
 | |
| 
 | |
| use Laminas\Diactoros\Response\{ RedirectResponse, HtmlResponse };
 | |
| 
 | |
| use Notes\Security\SecurityHandler;
 | |
| 
 | |
| use Picea\Picea;
 | |
| 
 | |
| use TheBugs\Email\{ EmailConfiguration, MailerInterface, SwiftMailer };
 | |
| 
 | |
| use Taxus\{ Taxus, PermissionGrantInterface };
 | |
| 
 | |
| use Lean\Factory\HttpFactoryInterface;
 | |
| 
 | |
| return [
 | |
|     \Ulmus\User\Entity\UserInterface::class => autowire(Entity\User::class),
 | |
| 
 | |
|     SecurityHandler::class => create(SecurityHandler::class)->constructor(function(ContainerInterface $c) {
 | |
|         return $c->get(HttpFactoryInterface::class)::createRedirectResponse(getenv("URL_BASE")."/login");
 | |
|     }, get('authentication.unauthorize'), get(Taxus::class)),
 | |
| 
 | |
|     'authentication.unauthorize' => function(ContainerInterface $c, Picea $picea) {
 | |
|         return function($message) use ($c, $picea) {
 | |
|             return $c->get(HttpFactoryInterface::class)::createHtmlResponse($picea->renderHtml('lean/error/401', [
 | |
|                 'title' => "",
 | |
|                 'subtitle' => "",
 | |
|                 'message' => $message,
 | |
|             ]));
 | |
|         };
 | |
|     },
 | |
| 
 | |
|     EmailConfiguration::class => function($c) {
 | |
|         $email = new EmailConfiguration( EmailConfiguration::AUTH_TYPE_SMTP );
 | |
|         $email->smtpHost = getenv('SMTP_HOSTNAME');
 | |
|         $email->smtpPort = getenv('SMTP_PORT');
 | |
|         $email->smtpUsername = getenv('SMTP_USERNAME');
 | |
|         $email->smtpPassword = getenv('SMTP_PASSWORD');
 | |
|         $email->smtpUseTLS = getenv('SMTP_TLS');
 | |
|         $email->toAddress = getenv("TO_EMAIL");
 | |
|         $email->fromAddress = getenv("FROM_EMAIL");
 | |
|         $email->fromName = getenv("FROM_NAME");
 | |
| 
 | |
|         return $email;
 | |
|     },
 | |
| ];
 |