|
|
<?php |
|
|
|
|
|
namespace Kanboard\Middleware; |
|
|
|
|
|
use Kanboard\Core\Controller\AccessForbiddenException; |
|
|
use Kanboard\Core\Controller\BaseMiddleware; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ProjectAuthorizationMiddleware extends BaseMiddleware |
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
public function execute() |
|
|
{ |
|
|
$project_id = $this->request->getIntegerParam('project_id'); |
|
|
$task_id = $this->request->getIntegerParam('task_id'); |
|
|
|
|
|
if ($task_id > 0 && $project_id === 0) { |
|
|
$project_id = $this->taskFinderModel->getProjectId($task_id); |
|
|
} |
|
|
|
|
|
if ($project_id > 0 && ! $this->helper->user->hasProjectAccess($this->router->getController(), $this->router->getAction(), $project_id)) { |
|
|
throw new AccessForbiddenException(); |
|
|
} |
|
|
|
|
|
$this->next(); |
|
|
} |
|
|
} |
|
|
|