refactor(actions): centralize wave-2 post/csrf guards
This commit is contained in:
@@ -4,7 +4,6 @@ use MintyPHP\Http\SessionStoreInterface;
|
||||
use MintyPHP\Router;
|
||||
use MintyPHP\Service\Access\UserAuthorizationPolicy;
|
||||
use MintyPHP\Service\User\UserAccessPdfService;
|
||||
use MintyPHP\Session;
|
||||
use MintyPHP\Support\Guard;
|
||||
|
||||
$session = app(SessionStoreInterface::class)->all();
|
||||
@@ -15,22 +14,20 @@ Guard::requireLogin();
|
||||
$authorizationService = app(\MintyPHP\Service\Access\AuthorizationService::class);
|
||||
$userAccountService = app(\MintyPHP\Service\User\UserAccountService::class);
|
||||
$userAccessPdfService = app(UserAccessPdfService::class);
|
||||
$request = requestInput();
|
||||
$errorBag = formErrors();
|
||||
|
||||
// Support both route param and POSTed uuid (POST avoids exposing uuid in URL/history).
|
||||
$uuid = trim((string) ($id ?? ''));
|
||||
if ($uuid === '' && strtoupper((string) (requestInput()->method())) === 'POST') {
|
||||
if (!Session::checkCsrfToken()) {
|
||||
$errorBag->addGlobal(t('Form expired, please try again'));
|
||||
flashFormErrors($errorBag, 'admin/users', 'users_access_pdf');
|
||||
Router::redirect('admin/users');
|
||||
if ($uuid === '' && $request->isMethod('POST')) {
|
||||
if (!actionRequireCsrf('admin/users', 'admin/users', 'users_access_pdf')) {
|
||||
return;
|
||||
}
|
||||
$uuid = trim((string) (requestInput()->bodyAll()['uuid'] ?? ''));
|
||||
$uuid = trim((string) ($request->bodyAll()['uuid'] ?? ''));
|
||||
}
|
||||
$user = $uuid !== '' ? $userAccountService->findByUuid($uuid) : null;
|
||||
if (!$user) {
|
||||
if (strtoupper((string) (requestInput()->method())) === 'POST') {
|
||||
if ($request->isMethod('POST')) {
|
||||
$errorBag->addGlobal(t('User not found'));
|
||||
flashFormErrors($errorBag, 'admin/users', 'users_access_pdf');
|
||||
Router::redirect('admin/users');
|
||||
|
||||
@@ -4,8 +4,6 @@ use MintyPHP\Http\SessionStoreInterface;
|
||||
use MintyPHP\Router;
|
||||
use MintyPHP\Service\Access\UserAuthorizationPolicy;
|
||||
use MintyPHP\Service\User\UserAccessPdfService;
|
||||
use MintyPHP\Session;
|
||||
use MintyPHP\Support\Flash;
|
||||
use MintyPHP\Support\Guard;
|
||||
|
||||
$session = app(SessionStoreInterface::class)->all();
|
||||
@@ -24,14 +22,11 @@ if (!$decision->isAllowed()) {
|
||||
$userAccountService = app(\MintyPHP\Service\User\UserAccountService::class);
|
||||
$userAccessPdfService = app(UserAccessPdfService::class);
|
||||
|
||||
if (strtoupper((string) (requestInput()->method())) !== 'POST') {
|
||||
Router::redirect('admin/users');
|
||||
if (!actionRequirePost('admin/users')) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), 'admin/users', 'csrf_expired');
|
||||
Router::redirect('admin/users');
|
||||
if (!actionRequireCsrf('admin/users', 'admin/users', 'csrf_expired')) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -8,7 +8,6 @@ use MintyPHP\Repository\Auth\RememberTokenRepository;
|
||||
use MintyPHP\Router;
|
||||
use MintyPHP\Service\Access\UserAuthorizationPolicy;
|
||||
use MintyPHP\Service\CustomField\UserCustomFieldValueService;
|
||||
use MintyPHP\Session;
|
||||
use MintyPHP\Support\Flash;
|
||||
use MintyPHP\Support\Guard;
|
||||
|
||||
@@ -155,9 +154,7 @@ if ($canViewSecurityArtifacts) {
|
||||
$canManageApiTokens = $canManageApiTokens && $canViewSecurityArtifacts;
|
||||
$showApiTokens = $canViewSecurityArtifacts;
|
||||
|
||||
if ($request->isMethod('POST') && !Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), $editTarget, 'csrf_expired');
|
||||
Router::redirect($editTarget);
|
||||
if ($request->isMethod('POST') && !actionRequireCsrf($editTarget, $editTarget, 'csrf_expired')) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user