clearRememberedEnvironmentContext($request); $previousUrl = url()->previous(); $previousHost = parse_url((string) $previousUrl, PHP_URL_HOST); $previousPath = (string) (parse_url((string) $previousUrl, PHP_URL_PATH) ?? ''); if ($previousHost !== null && $previousHost !== $request->getHost()) { return redirect()->to(OperationRunLinks::index()); } if ($this->isEnvironmentScopedEvidencePath($previousPath)) { return redirect()->route('admin.evidence.overview'); } if (AdminSurfaceScope::fromPath($previousPath) === AdminSurfaceScope::EnvironmentBound) { $workspace = $workspaceContext->currentWorkspace($request); if ($workspace !== null) { return redirect()->route('admin.workspace.managed-environments.index', ['workspace' => $workspace]); } return redirect()->route('admin.home'); } if ($previousPath === '' || $previousPath === '/admin/clear-environment-context') { return redirect()->to(OperationRunLinks::index()); } return redirect()->to((string) $previousUrl); } private function isEnvironmentScopedEvidencePath(string $previousPath): bool { if ($previousPath === '/admin/evidence') { return true; } if (! str_starts_with($previousPath, '/admin/evidence/')) { return false; } return ! str_starts_with($previousPath, '/admin/evidence/overview'); } }