blob: d27e4b71f1e43e9b58207012c276a01a53a1594d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<?php
namespace Studip\Middleware;
use AccessDeniedException;
use Psr\Http\Message\ResponseInterface;
use Psr\Http\Message\ServerRequestInterface;
use Psr\Http\Server\MiddlewareInterface;
use Psr\Http\Server\RequestHandlerInterface;
use Psr\Http\Message\ResponseFactoryInterface;
use Request;
use URLHelper;
final class HandleAccessDeniedMiddleware implements MiddlewareInterface
{
public function __construct(private ResponseFactoryInterface $responseFactory)
{
}
/**
* @SuppressWarnings(StaticAccess)
* @SuppressWarnings(SuperGlobals)
*/
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
try {
return $handler->handle($request);
} catch (AccessDeniedException $ade) {
$_SESSION['redirect_after_login'] = Request::url();
$response = $this->responseFactory->createResponse(302);
return $response->withHeader('Location', URLHelper::getURL('dispatch.php/login'));
}
}
}
|