Browse Source

Use IURLGenerator function to get value of `\OC::$WEBROOT` global

Signed-off-by: Jonas Meurer <jonas@freesources.org>
pull/28303/head
Jonas Meurer 4 years ago
parent
commit
7c76e85dde
No known key found for this signature in database GPG Key ID: 5262E7FF491049FE
  1. 10
      core/Controller/UnifiedSearchController.php
  2. 7
      lib/private/URLGenerator.php
  3. 6
      lib/public/IURLGenerator.php
  4. 6
      tests/lib/UrlGeneratorTest.php

10
core/Controller/UnifiedSearchController.php

@ -33,6 +33,7 @@ use OCP\AppFramework\OCSController;
use OCP\AppFramework\Http; use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\Http\DataResponse;
use OCP\IRequest; use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUserSession; use OCP\IUserSession;
use OCP\Route\IRouter; use OCP\Route\IRouter;
use OCP\Search\ISearchQuery; use OCP\Search\ISearchQuery;
@ -49,15 +50,20 @@ class UnifiedSearchController extends OCSController {
/** @var IRouter */ /** @var IRouter */
private $router; private $router;
/** @var IURLGenerator */
private $urlGenerator;
public function __construct(IRequest $request, public function __construct(IRequest $request,
IUserSession $userSession, IUserSession $userSession,
SearchComposer $composer, SearchComposer $composer,
IRouter $router) {
IRouter $router,
IURLGenerator $urlGenerator) {
parent::__construct('core', $request); parent::__construct('core', $request);
$this->composer = $composer; $this->composer = $composer;
$this->userSession = $userSession; $this->userSession = $userSession;
$this->router = $router; $this->router = $router;
$this->urlGenerator = $urlGenerator;
} }
/** /**
@ -127,7 +133,7 @@ class UnifiedSearchController extends OCSController {
// Optionally strip webroot from URL. Required for route matching on setups // Optionally strip webroot from URL. Required for route matching on setups
// with Nextcloud in a webserver subfolder (webroot). // with Nextcloud in a webserver subfolder (webroot).
$webroot = \OC::$WEBROOT;
$webroot = $this->urlGenerator->getWebroot();
if ($webroot !== '' && substr($urlPath, 0, strlen($webroot)) === $webroot) { if ($webroot !== '' && substr($urlPath, 0, strlen($webroot)) === $webroot) {
$urlPath = substr($urlPath, strlen($webroot)); $urlPath = substr($urlPath, strlen($webroot));
} }

7
lib/private/URLGenerator.php

@ -276,4 +276,11 @@ class URLGenerator implements IURLGenerator {
} }
return $this->baseUrl; return $this->baseUrl;
} }
/**
* @return string webroot part of the base url
*/
public function getWebroot(): string {
return \OC::$WEBROOT;
}
} }

6
lib/public/IURLGenerator.php

@ -102,4 +102,10 @@ interface IURLGenerator {
* @since 13.0.0 * @since 13.0.0
*/ */
public function getBaseUrl(): string; public function getBaseUrl(): string;
/**
* @return string webroot part of the base url
* @since 23.0.0
*/
public function getWebroot(): string;
} }

6
tests/lib/UrlGeneratorTest.php

@ -179,6 +179,12 @@ class UrlGeneratorTest extends \Test\TestCase {
$this->assertEquals($expected, $actual); $this->assertEquals($expected, $actual);
} }
public function testGetWebroot() {
\OC::$WEBROOT = '/nextcloud';
$actual = $this->urlGenerator->getWebroot();
$this->assertEquals(\OC::$WEBROOT, $actual);
}
/** /**
* @dataProvider provideOCSRoutes * @dataProvider provideOCSRoutes
*/ */

Loading…
Cancel
Save