diff options
author | Morris Jobke <hey@morrisjobke.de> | 2015-01-15 15:33:55 +0100 |
---|---|---|
committer | Morris Jobke <hey@morrisjobke.de> | 2015-01-15 15:33:55 +0100 |
commit | 3ce71b73c85269774259384ffa661efe99ec1f02 (patch) | |
tree | 148ed0db1fdcf16752839dc0bfc6112b5c8531b1 /lib | |
parent | 2fbe8bbcba2e6387669f0028cb5a3d314336efe4 (diff) | |
parent | bb0c88a577e67e7537a32f0e63ab00403fe3531c (diff) | |
download | nextcloud-server-3ce71b73c85269774259384ffa661efe99ec1f02.tar.gz nextcloud-server-3ce71b73c85269774259384ffa661efe99ec1f02.zip |
Merge pull request #13387 from owncloud/fix-urlparameters
always set url parameters when they are available in the app dispatch
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/appframework/app.php | 4 | ||||
-rw-r--r-- | lib/private/appframework/dependencyinjection/dicontainer.php | 1 | ||||
-rw-r--r-- | lib/private/appframework/http/request.php | 22 |
3 files changed, 18 insertions, 9 deletions
diff --git a/lib/private/appframework/app.php b/lib/private/appframework/app.php index b94c7bd9957..537f10255a3 100644 --- a/lib/private/appframework/app.php +++ b/lib/private/appframework/app.php @@ -75,7 +75,9 @@ class App { */ public static function main($controllerName, $methodName, DIContainer $container, array $urlParams = null) { if (!is_null($urlParams)) { - $container['urlParams'] = $urlParams; + $container['OCP\\IRequest']->setUrlParameters($urlParams); + } else if (isset($container['urlParams']) && !is_null($container['urlParams'])) { + $container['OCP\\IRequest']->setUrlParameters($container['urlParams']); } $appName = $container['AppName']; diff --git a/lib/private/appframework/dependencyinjection/dicontainer.php b/lib/private/appframework/dependencyinjection/dicontainer.php index f6a0c0c4974..dc80d88a880 100644 --- a/lib/private/appframework/dependencyinjection/dicontainer.php +++ b/lib/private/appframework/dependencyinjection/dicontainer.php @@ -233,7 +233,6 @@ class DIContainer extends SimpleContainer implements IAppContainer { /** @var $c SimpleContainer */ /** @var $server SimpleContainer */ $server = $c->query('ServerContainer'); - $server->registerParameter('urlParams', $c['urlParams']); /** @var $server IServerContainer */ return $server->getRequest(); }); diff --git a/lib/private/appframework/http/request.php b/lib/private/appframework/http/request.php index 350694dca81..6012033fe52 100644 --- a/lib/private/appframework/http/request.php +++ b/lib/private/appframework/http/request.php @@ -68,12 +68,12 @@ class Request implements \ArrayAccess, \Countable, IRequest { $this->items['params'] = array(); if(!array_key_exists('method', $vars)) { - $vars['method'] = 'GET'; + $vars['method'] = 'GET'; } foreach($this->allowedKeys as $name) { $this->items[$name] = isset($vars[$name]) - ? $vars[$name] + ? $vars[$name] : array(); } @@ -83,7 +83,7 @@ class Request implements \ArrayAccess, \Countable, IRequest { if(count($params) > 0) { $this->items['params'] = $params; if($vars['method'] === 'POST') { - $this->items['post'] = $params; + $this->items['post'] = $params; } } // Handle application/x-www-form-urlencoded for methods other than GET @@ -91,12 +91,12 @@ class Request implements \ArrayAccess, \Countable, IRequest { } elseif($vars['method'] !== 'GET' && $vars['method'] !== 'POST' && strpos($this->getHeader('Content-Type'), 'application/x-www-form-urlencoded') !== false) { - + parse_str(file_get_contents($this->inputStream), $params); if(is_array($params)) { $this->items['params'] = $params; } - } + } $this->items['parameters'] = array_merge( $this->items['get'], @@ -107,6 +107,14 @@ class Request implements \ArrayAccess, \Countable, IRequest { } + public function setUrlParameters($parameters) { + $this->items['urlParams'] = $parameters; + $this->items['parameters'] = array_merge( + $this->items['parameters'], + $this->items['urlParams'] + ); + } + // Countable method. public function count() { return count(array_keys($this->items['parameters'])); @@ -207,8 +215,8 @@ class Request implements \ArrayAccess, \Countable, IRequest { return $this->items['method']; break; default; - return isset($this[$name]) - ? $this[$name] + return isset($this[$name]) + ? $this[$name] : null; break; } |