{
"event": "PreToolUse",
"tool_name": "Edit",
"tool_input": {
"file_path": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Framework\/Http\/CsrfTrait.php",
"old_string": "namespace Framework\\Controller;",
"new_string": "namespace Framework\\Http;"
}
}
{
"tool_response": {
"filePath": "\/var\/www\/dev.campus.systemische-tools.de\/src\/Framework\/Http\/CsrfTrait.php",
"oldString": "namespace Framework\\Controller;",
"newString": "namespace Framework\\Http;",
"originalFile": "<?php\n\ndeclare(strict_types=1);\n\nnamespace Framework\\Controller;\n\n\/\/ @responsibility: CSRF-Token-Handling für Controller\n\nuse Framework\\CsrfService;\n\ntrait CsrfTrait\n{\n protected function csrfToken(): string\n {\n return CsrfService::getToken();\n }\n\n protected function csrfField(): string\n {\n return CsrfService::getTokenField();\n }\n\n protected function validateCsrf(): bool\n {\n $token = $_POST['_csrf_token'] ?? $_SERVER['HTTP_X_CSRF_TOKEN'] ?? null;\n\n return CsrfService::validateToken($token);\n }\n\n protected function requireCsrf(): void\n {\n if (!$this->validateCsrf()) {\n if ($this->isJsonRequest()) {\n $this->json(['error' => 'CSRF token invalid'], 403);\n } else {\n $this->text('CSRF token invalid', 403);\n }\n exit;\n }\n }\n\n private function isJsonRequest(): bool\n {\n $accept = $_SERVER['HTTP_ACCEPT'] ?? '';\n $contentType = $_SERVER['CONTENT_TYPE'] ?? '';\n\n return str_contains($accept, 'application\/json') || str_contains($contentType, 'application\/json');\n }\n}\n",
"structuredPatch": [
{
"oldStart": 2,
"oldLines": 7,
"newStart": 2,
"newLines": 7,
"lines": [
" ",
" declare(strict_types=1);",
" ",
"-namespace Framework\\Controller;",
"+namespace Framework\\Http;",
" ",
" \/\/ @responsibility: CSRF-Token-Handling für Controller",
" "
]
}
],
"userModified": false,
"replaceAll": false
}
}