]> source.dussan.org Git - nextcloud-server.git/commitdiff
Add blackmagic due to cyclic dependency :see_no_evil:
authorLukas Reschke <lukas@owncloud.com>
Mon, 16 Feb 2015 15:26:02 +0000 (16:26 +0100)
committerLukas Reschke <lukas@owncloud.com>
Mon, 16 Feb 2015 21:13:01 +0000 (22:13 +0100)
lib/base.php
lib/private/appframework/http/request.php

index 51d59d130aa71bda2632dcad7e0db5e5c4fda3dd..5905aa0406f570998f354d1f1ed619c70e9575a2 100644 (file)
@@ -104,7 +104,14 @@ class OC {
                 * FIXME: The following line is required because of a cyclic dependency
                 *        on IRequest.
                 */
-               $scriptName = $_SERVER['SCRIPT_NAME'];
+               $params = [
+                       'server' => [
+                               'SCRIPT_NAME' => $_SERVER['SCRIPT_NAME'],
+                               'SCRIPT_FILENAME' => $_SERVER['SCRIPT_FILENAME'],
+                       ],
+               ];
+               $fakeRequest = new \OC\AppFramework\Http\Request($params, null, new \OC\AllConfig(new \OC\SystemConfig()));
+               $scriptName = $fakeRequest->getScriptName();
                if (substr($scriptName, -1) == '/') {
                        $scriptName .= 'index.php';
                        //make sure suburi follows the same rules as scriptName
index 97e9809c1fba896f45ebec8c39eb37778a330a53..5cffbccb62394b3277934e9ef6c0e411fe8cb6c1 100644 (file)
@@ -80,7 +80,7 @@ class Request implements \ArrayAccess, \Countable, IRequest {
         * @see http://www.php.net/manual/en/reserved.variables.php
         */
        public function __construct(array $vars=array(),
-                                                               ISecureRandom $secureRandom,
+                                                               ISecureRandom $secureRandom = null,
                                                                IConfig $config,
                                                                $stream='php://input') {
                $this->inputStream = $stream;
@@ -596,8 +596,8 @@ class Request implements \ArrayAccess, \Countable, IRequest {
                $name = $this->server['SCRIPT_NAME'];
                $overwriteWebRoot =  $this->config->getSystemValue('overwritewebroot');
                if ($overwriteWebRoot !== '' && $this->isOverwriteCondition()) {
-                       // FIXME: This code is untestable due to ___DIR__
-                       $serverRoot = str_replace('\\', '/', substr(__DIR__, 0, -strlen('lib/private/')));
+                       // FIXME: This code is untestable due to __DIR__, also that hardcoded path is really dangerous
+                       $serverRoot = str_replace('\\', '/', substr(__DIR__, 0, -strlen('lib/private/appframework/http/')));
                        $suburi = str_replace('\\', '/', substr(realpath($this->server['SCRIPT_FILENAME']), strlen($serverRoot)));
                        $name = '/' . ltrim($overwriteWebRoot . $suburi, '/');
                }