refactor(actions): complete admin request/csrf guard centralization
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
use MintyPHP\Http\SessionStoreInterface;
|
||||
use MintyPHP\Router;
|
||||
use MintyPHP\Service\Access\UserAuthorizationPolicy;
|
||||
use MintyPHP\Session;
|
||||
use MintyPHP\Support\Flash;
|
||||
use MintyPHP\Support\Guard;
|
||||
|
||||
@@ -20,6 +19,7 @@ $user = $uuid !== '' ? $userAccountService->findByUuid($uuid) : null;
|
||||
if (!$user) {
|
||||
Router::redirect('admin/users');
|
||||
}
|
||||
$redirectTarget = "admin/users/edit/{$uuid}";
|
||||
|
||||
$userId = (int) ($user['id'] ?? 0);
|
||||
$currentUserId = (int) ($session['user']['id'] ?? 0);
|
||||
@@ -32,27 +32,29 @@ if (!$decision->isAllowed()) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), "admin/users/edit/{$uuid}", 'csrf_expired');
|
||||
Router::redirect("admin/users/edit/{$uuid}");
|
||||
if (!actionRequirePost($redirectTarget)) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!actionRequireCsrf($redirectTarget, $redirectTarget, 'csrf_expired')) {
|
||||
return;
|
||||
}
|
||||
|
||||
$name = trim((string) (requestInput()->bodyAll()['token_name'] ?? ''));
|
||||
|
||||
if ($name === '') {
|
||||
Flash::error(t('Token name is required'), "admin/users/edit/{$uuid}", 'api_token_error');
|
||||
Router::redirect("admin/users/edit/{$uuid}");
|
||||
Flash::error(t('Token name is required'), $redirectTarget, 'api_token_error');
|
||||
Router::redirect($redirectTarget);
|
||||
}
|
||||
|
||||
$result = $apiTokenService->create($userId, $name, null, null, $currentUserId);
|
||||
|
||||
if ($result['ok'] ?? false) {
|
||||
$sessionStore->set('api_token_created', ['token' => $result['token'], 'uuid' => $uuid]);
|
||||
Flash::success(t('API token created. Copy it now — it will not be shown again.'), "admin/users/edit/{$uuid}", 'api_token_created');
|
||||
Flash::success(t('API token created. Copy it now — it will not be shown again.'), $redirectTarget, 'api_token_created');
|
||||
} else {
|
||||
$error = $result['error'] ?? 'create_failed';
|
||||
Flash::error(t('Could not create API token: %s', $error), "admin/users/edit/{$uuid}", 'api_token_error');
|
||||
Flash::error(t('Could not create API token: %s', $error), $redirectTarget, 'api_token_error');
|
||||
}
|
||||
|
||||
Router::redirect("admin/users/edit/{$uuid}");
|
||||
Router::redirect($redirectTarget);
|
||||
|
||||
Reference in New Issue
Block a user