From 7d95a8895845c52927788fd36995480d1672a123 Mon Sep 17 00:00:00 2001 From: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com> Date: Tue, 3 Feb 2026 13:49:18 +0100 Subject: [PATCH] fix: add X-User-Id header to logout response before clearing the user session Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com> --- core/Controller/LoginController.php | 9 +++++++-- tests/Core/Controller/LoginControllerTest.php | 1 + 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/core/Controller/LoginController.php b/core/Controller/LoginController.php index 917bc061563d2..1a10513078549 100644 --- a/core/Controller/LoginController.php +++ b/core/Controller/LoginController.php @@ -79,8 +79,9 @@ public function __construct( #[FrontpageRoute(verb: 'GET', url: '/logout')] public function logout() { $loginToken = $this->request->getCookie('nc_token'); - if (!is_null($loginToken)) { - $this->config->deleteUserValue($this->userSession->getUser()->getUID(), 'login_token', $loginToken); + $uid = $this->userSession->getUser()?->getUID(); + if ($loginToken !== null && $uid !== null) { + $this->config->deleteUserValue($uid, 'login_token', $loginToken); } $this->userSession->logout(); @@ -99,6 +100,10 @@ public function logout() { $response->addHeader('Clear-Site-Data', '"cache", "storage"'); } + if ($uid !== null) { + $response->addHeader('X-User-Id', $uid); + } + return $response; } diff --git a/tests/Core/Controller/LoginControllerTest.php b/tests/Core/Controller/LoginControllerTest.php index b4fd95513dfd3..2dca8f92d3750 100644 --- a/tests/Core/Controller/LoginControllerTest.php +++ b/tests/Core/Controller/LoginControllerTest.php @@ -218,6 +218,7 @@ public function testLogoutWithToken(): void { $expected = new RedirectResponse('/login'); $expected->addHeader('Clear-Site-Data', '"cache", "storage"'); + $expected->addHeader('X-User-Id', 'JohnDoe'); $this->assertEquals($expected, $this->loginController->logout()); }