Compare commits

..

2 Commits

Author SHA1 Message Date
55e6d4c583 Fix: Tasks-Endpoints ignorierten die Monolith-Session (sidawo)
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 <noreply@anthropic.com>
2026-06-22 13:56:17 +02:00
cf97a52128 Fix: Aufgaben-Formular (neu anlegen) zeigte User-Detail statt Admin-Formular
Sitepart 68 ("Bearbeitungsmaske") hatte den falschen Typ 36
(user/task_detail.php). Dadurch wurde beim Öffnen der "neue Aufgabe"-
Seite der User-Task-Detail-Action aufgerufen, die ohne assignment_id
mit "Ungültige Assignment-ID." abbricht.

Lösung: Typ 40 in intranet.php für admin/task_form.php eingetragen,
Sitepart 68 in der DB auf Typ 40 gesetzt.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 13:52:05 +02:00
2 changed files with 15 additions and 0 deletions

View File

@@ -124,6 +124,9 @@ function intranet_show($sitepart_id) {
case 39: case 39:
$include = MODULE_PATH.'/tasks/pages/user/escalation_overlay_widget.php'; $include = MODULE_PATH.'/tasks/pages/user/escalation_overlay_widget.php';
break; break;
case 40:
$include = MODULE_PATH.'/tasks/pages/admin/task_form.php';
break;
default: default:
break; break;
} }

View File

@@ -260,6 +260,18 @@ if (!defined('TASK_CERT_BOOTSTRAPPED')) {
} }
if (session_status() === PHP_SESSION_NONE) { 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(); session_start();
} }