summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2015-01-15 15:33:55 +0100
committerMorris Jobke <hey@morrisjobke.de>2015-01-15 15:33:55 +0100
commit3ce71b73c85269774259384ffa661efe99ec1f02 (patch)
tree148ed0db1fdcf16752839dc0bfc6112b5c8531b1 /lib
parent2fbe8bbcba2e6387669f0028cb5a3d314336efe4 (diff)
parentbb0c88a577e67e7537a32f0e63ab00403fe3531c (diff)
downloadnextcloud-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.php4
-rw-r--r--lib/private/appframework/dependencyinjection/dicontainer.php1
-rw-r--r--lib/private/appframework/http/request.php22
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;
}