feat(admin): preserve list return target for back and close actions
This commit is contained in:
@@ -12,15 +12,18 @@ use MintyPHP\Support\Guard;
|
||||
$session = app(SessionStoreInterface::class)->all();
|
||||
Guard::requireLogin();
|
||||
$request = requestInput();
|
||||
$returnTarget = requestResolveReturnTarget();
|
||||
$closeTarget = requestResolveReturnTarget('admin/permissions');
|
||||
|
||||
$currentUserId = (int) ($session['user']['id'] ?? 0);
|
||||
$authorizationService = app(\MintyPHP\Service\Access\AuthorizationService::class);
|
||||
|
||||
$id = (int) ($id ?? 0);
|
||||
$editTarget = requestPathWithReturnTarget("admin/permissions/edit/{$id}", $returnTarget);
|
||||
$permission = $id > 0 ? app(\MintyPHP\Service\Access\PermissionGateway::class)->find($id) : null;
|
||||
if (!$permission) {
|
||||
Flash::error('Permission not found', 'admin/permissions', 'permission_not_found');
|
||||
Router::redirect('admin/permissions');
|
||||
Flash::error('Permission not found', $closeTarget, 'permission_not_found');
|
||||
Router::redirect($closeTarget);
|
||||
}
|
||||
$isSystemPermission = (int) ($permission['is_system'] ?? 0) === 1;
|
||||
$contextDecision = $authorizationService->authorize(PermissionAuthorizationPolicy::ABILITY_ADMIN_PERMISSIONS_EDIT_CONTEXT, [
|
||||
@@ -46,8 +49,8 @@ $selectedRoleIds = $rolePermissionRepository->listRoleIdsByPermissionId($id);
|
||||
$previousRoleIds = $selectedRoleIds;
|
||||
|
||||
if ($request->isMethod('POST') && !Session::checkCsrfToken()) {
|
||||
Flash::error(t('Form expired, please try again'), "admin/permissions/edit/{$id}", 'csrf_expired');
|
||||
Router::redirect("admin/permissions/edit/{$id}");
|
||||
Flash::error(t('Form expired, please try again'), $editTarget, 'csrf_expired');
|
||||
Router::redirect($editTarget);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -97,11 +100,11 @@ if ($request->hasBody('key')) {
|
||||
if ($syncSucceeded) {
|
||||
$action = (string) $request->body('action', 'save');
|
||||
if ($action === 'save_close') {
|
||||
Flash::success('Permission updated', 'admin/permissions', 'permission_updated');
|
||||
Router::redirect('admin/permissions');
|
||||
Flash::success('Permission updated', $closeTarget, 'permission_updated');
|
||||
Router::redirect($closeTarget);
|
||||
} else {
|
||||
Flash::success('Permission updated', "admin/permissions/edit/{$id}", 'permission_updated');
|
||||
Router::redirect("admin/permissions/edit/{$id}");
|
||||
Flash::success('Permission updated', $editTarget, 'permission_updated');
|
||||
Router::redirect($editTarget);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user