- Added a new Email defintion (which will soon see it's components changed)

- Added a new post-install script for composer which adds a project skeleton "ready to use".
- Error 500 are now handled properly in production; waiting to see if adjustements will be required before adding other code pages.
This commit is contained in:
mcndave committed 2021-03-01 16:01:27 +00:00
1 parent 09b3e47c19
commit 01bb926ca7
30 files changed
+887 -2

No files matched your search

@@ -0,0 +1,54 @@
<?php
namespace %NAMESPACE%\Middleware;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Psr\Http\Message\ResponseInterface;
use Storage\Session;
class Authentication implements MiddlewareInterface {
public Session $session;
public string $sessionUserVariable = 'user';
public ResponseInterface $loginRedirect;
public function __construct(ResponseInterface $loginRedirect, Session $session)
{
$this->loginRedirect = $loginRedirect;
$this->session = $session;
}
/**
* Middleware request handling
*
* @param ServerRequestInterface $request
* @param RequestHandlerInterface $handler
* @return ResponseInterface
*/
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler) : ResponseInterface
{
$user = $this->session->get( $this->sessionUserVariable() );
if ( ! $user ) {
return $this->loginRedirect;
}
return $handler->handle($request);
}
/**
* Getter / setter of Session User Variable
*
* @param string|null sessionUserVariable
* @return mixed
*/
public function sessionUserVariable(?string $set = null) : string
{
return $set !== null ? $this->sessionUserVariable = $set : $this->sessionUserVariable;
}
}