From 55e6d4c58399c3d0cce0ad6eb98a70725e206fdc Mon Sep 17 00:00:00 2001 From: Moritz Weinmann Date: Mon, 22 Jun 2026 13:56:17 +0200 Subject: [PATCH] Fix: Tasks-Endpoints ignorierten die Monolith-Session (sidawo) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bootstrap.php rief session_start() mit Standard-Name PHPSESSID auf, weil start.inc.php für Endpoint-Requests bewusst nicht geladen wird. Das führte zu einer leeren Session → contactId = 0 → "Keine Berechtigung". Lösung: Vor session_start() prüfen ob ein sid*-Cookie vorhanden ist und ggf. session_name() entsprechend setzen, damit Endpoints und Monolith dieselbe Session nutzen. Co-Authored-By: Claude Sonnet 4.6 --- module/tasks/bootstrap.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/module/tasks/bootstrap.php b/module/tasks/bootstrap.php index 9ea502d..feebd96 100644 --- a/module/tasks/bootstrap.php +++ b/module/tasks/bootstrap.php @@ -260,6 +260,18 @@ if (!defined('TASK_CERT_BOOTSTRAPPED')) { } if (session_status() === PHP_SESSION_NONE) { + // Endpoint-Requests überspringen start.inc.php (kein session_name-Setup durch den Monolith). + // Cookie-Detection stellt sicher, dass wir dieselbe Session wie der Monolith verwenden + // (Monolith setzt den Session-Namen auf "sid{site_code}", z.B. "sidawo"). + if (session_name() === 'PHPSESSID') { + foreach (array_keys($_COOKIE) as $_tc_sn) { + if (strncmp($_tc_sn, 'sid', 3) === 0) { + session_name($_tc_sn); + break; + } + } + unset($_tc_sn); + } session_start(); }