From ebd9f30d85a718c6f89589a4c0116b043093e99a Mon Sep 17 00:00:00 2001
From: Roeland Jago Douma <roeland@famdouma.nl>
Date: Wed, 23 Jan 2019 10:21:14 +0100
Subject: [PATCH] Request plain logout url

By requesting the plain logout url we allow it to be properly cached by
the caching router. We just add the requesttoken manually.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
---
 lib/private/legacy/user.php         |  8 ++------
 tests/lib/NavigationManagerTest.php | 15 +++++----------
 2 files changed, 7 insertions(+), 16 deletions(-)

diff --git a/lib/private/legacy/user.php b/lib/private/legacy/user.php
index e006a59771a..ab87c484db4 100644
--- a/lib/private/legacy/user.php
+++ b/lib/private/legacy/user.php
@@ -269,12 +269,8 @@ class OC_User {
 			return $backend->getLogoutUrl();
 		}
 
-		$logoutUrl = $urlGenerator->linkToRouteAbsolute(
-			'core.login.logout',
-			[
-				'requesttoken' => \OCP\Util::callRegister(),
-			]
-		);
+		$logoutUrl = $urlGenerator->linkToRouteAbsolute('core.login.logout');
+		$logoutUrl .= '?requesttoken=' . \OCP\Util::callRegister();
 
 		return $logoutUrl;
 	}
diff --git a/tests/lib/NavigationManagerTest.php b/tests/lib/NavigationManagerTest.php
index 8bc1c372ac8..6649aba28b6 100644
--- a/tests/lib/NavigationManagerTest.php
+++ b/tests/lib/NavigationManagerTest.php
@@ -221,15 +221,10 @@ class NavigationManagerTest extends TestCase {
 			return '/apps/test/';
 		});
 		$this->urlGenerator
-		     ->expects($this->once())
-		     ->method('linkToRouteAbsolute')
-		     ->with(
-			     'core.login.logout',
-			     [
-				     'requesttoken' => \OCP\Util::callRegister()
-			     ]
-		     )
-		     ->willReturn('https://example.com/logout');
+			->expects($this->once())
+			->method('linkToRouteAbsolute')
+			->with('core.login.logout')
+			->willReturn('https://example.com/logout');
 		$user = $this->createMock(IUser::class);
 		$user->expects($this->any())->method('getUID')->willReturn('user001');
 		$this->userSession->expects($this->any())->method('getUser')->willReturn($user);
@@ -275,7 +270,7 @@ class NavigationManagerTest extends TestCase {
 			'logout' => [
 				'id'      => 'logout',
 				'order'   => 99999,
-				'href'    => 'https://example.com/logout',
+				'href'    => 'https://example.com/logout?requesttoken='. \OCP\Util::callRegister(),
 				'icon'    => '/apps/core/img/actions/logout.svg',
 				'name'    => 'Log out',
 				'active'  => false,
-- 
GitLab