| | <?php |
| |
|
| | namespace Kanboard\Middleware; |
| |
|
| | use Kanboard\Core\Controller\AccessForbiddenException; |
| | use Kanboard\Core\Controller\BaseMiddleware; |
| | use Kanboard\Core\Security\Role; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | class AuthenticationMiddleware extends BaseMiddleware |
| | { |
| | |
| | |
| | |
| | public function execute() |
| | { |
| | if (! $this->authenticationManager->checkCurrentSession()) { |
| | $this->response->redirect($this->helper->url->to('AuthController', 'login')); |
| | return; |
| | } |
| |
|
| | if (! $this->isPublicAccess()) { |
| | $this->handleAuthentication(); |
| | } |
| |
|
| | $this->next(); |
| | } |
| |
|
| | protected function handleAuthentication() |
| | { |
| | if (! $this->userSession->isLogged() && ! $this->authenticationManager->preAuthentication()) { |
| | $this->nextMiddleware = null; |
| |
|
| | if ($this->request->isAjax()) { |
| | $this->response->text('Not Authorized', 401); |
| | } else { |
| | session_set('redirectAfterLogin', $this->request->getUri()); |
| | $this->response->redirect($this->helper->url->to('AuthController', 'login')); |
| | } |
| | } |
| | } |
| |
|
| | protected function isPublicAccess() |
| | { |
| | if ($this->applicationAuthorization->isAllowed($this->router->getController(), $this->router->getAction(), Role::APP_PUBLIC)) { |
| | $this->nextMiddleware = null; |
| | return true; |
| | } |
| |
|
| | return false; |
| | } |
| | } |
| |
|