summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Müller <thomas.mueller@tmit.eu>2013-09-18 03:10:42 -0700
committerThomas Müller <thomas.mueller@tmit.eu>2013-09-18 03:10:42 -0700
commit415a27c1aea82bad9f7da973854c28f15cadbee3 (patch)
tree772fe7bf157ffad41e6d2b4bbce592a0d46c7ad6
parent9b420e8660404de27e3af629bfca188ae90cf7bd (diff)
parentd3f88ceeb49b9b86d32124163b0cea82567a4911 (diff)
downloadnextcloud-server-415a27c1aea82bad9f7da973854c28f15cadbee3.tar.gz
nextcloud-server-415a27c1aea82bad9f7da973854c28f15cadbee3.zip
Merge pull request #4888 from owncloud/public_session
Public session
-rw-r--r--lib/appframework/controller/controller.php10
-rw-r--r--lib/appframework/http/request.php51
-rw-r--r--lib/public/irequest.php9
-rw-r--r--lib/public/iservercontainer.php7
-rw-r--r--lib/public/isession.php56
-rw-r--r--lib/server.php11
-rw-r--r--lib/session/session.php2
-rw-r--r--tests/lib/appframework/controller/ControllerTest.php5
8 files changed, 90 insertions, 61 deletions
diff --git a/lib/appframework/controller/controller.php b/lib/appframework/controller/controller.php
index a7498ba0e1e..0ea0a38cc09 100644
--- a/lib/appframework/controller/controller.php
+++ b/lib/appframework/controller/controller.php
@@ -107,16 +107,6 @@ abstract class Controller {
/**
- * Shortcut for getting session variables
- * @param string $key the key that will be taken from the $_SESSION array
- * @return array the value in the $_SESSION element
- */
- public function session($key) {
- return $this->request->getSession($key);
- }
-
-
- /**
* Shortcut for getting cookie variables
* @param string $key the key that will be taken from the $_COOKIE array
* @return array the value in the $_COOKIE element
diff --git a/lib/appframework/http/request.php b/lib/appframework/http/request.php
index 4f1775182a1..34605acdfea 100644
--- a/lib/appframework/http/request.php
+++ b/lib/appframework/http/request.php
@@ -33,16 +33,15 @@ class Request implements \ArrayAccess, \Countable, IRequest {
protected $items = array();
protected $allowedKeys = array(
- 'get',
- 'post',
- 'files',
- 'server',
- 'env',
- 'session',
- 'cookies',
- 'urlParams',
- 'params',
- 'parameters',
+ 'get',
+ 'post',
+ 'files',
+ 'server',
+ 'env',
+ 'cookies',
+ 'urlParams',
+ 'params',
+ 'parameters',
'method'
);
@@ -156,7 +155,6 @@ class Request implements \ArrayAccess, \Countable, IRequest {
case 'files':
case 'server':
case 'env':
- case 'session':
case 'cookies':
case 'parameters':
case 'params':
@@ -229,8 +227,7 @@ class Request implements \ArrayAccess, \Countable, IRequest {
* @param mixed $default If the key is not found, this value will be returned
* @return mixed the content of the array
*/
- public function getParam($key, $default = null)
- {
+ public function getParam($key, $default = null) {
return isset($this->parameters[$key])
? $this->parameters[$key]
: $default;
@@ -241,8 +238,7 @@ class Request implements \ArrayAccess, \Countable, IRequest {
* (as GET or POST) or throuh the URL by the route
* @return array the array with all parameters
*/
- public function getParams()
- {
+ public function getParams() {
return $this->parameters;
}
@@ -250,8 +246,7 @@ class Request implements \ArrayAccess, \Countable, IRequest {
* Returns the method of the request
* @return string the method of the request (POST, GET, etc)
*/
- public function getMethod()
- {
+ public function getMethod() {
return $this->method;
}
@@ -260,8 +255,7 @@ class Request implements \ArrayAccess, \Countable, IRequest {
* @param string $key the key that will be taken from the $_FILES array
* @return array the file in the $_FILES element
*/
- public function getUploadedFile($key)
- {
+ public function getUploadedFile($key) {
return isset($this->files[$key]) ? $this->files[$key] : null;
}
@@ -270,28 +264,16 @@ class Request implements \ArrayAccess, \Countable, IRequest {
* @param string $key the key that will be taken from the $_ENV array
* @return array the value in the $_ENV element
*/
- public function getEnv($key)
- {
+ public function getEnv($key) {
return isset($this->env[$key]) ? $this->env[$key] : null;
}
/**
- * Shortcut for getting session variables
- * @param string $key the key that will be taken from the $_SESSION array
- * @return array the value in the $_SESSION element
- */
- function getSession($key)
- {
- return isset($this->session[$key]) ? $this->session[$key] : null;
- }
-
- /**
* Shortcut for getting cookie variables
* @param string $key the key that will be taken from the $_COOKIE array
* @return array the value in the $_COOKIE element
*/
- function getCookie($key)
- {
+ function getCookie($key) {
return isset($this->cookies[$key]) ? $this->cookies[$key] : null;
}
@@ -304,8 +286,7 @@ class Request implements \ArrayAccess, \Countable, IRequest {
*
* @throws \LogicException
*/
- function getContent($asResource = false)
- {
+ function getContent($asResource = false) {
return null;
// if (false === $this->content || (true === $asResource && null !== $this->content)) {
// throw new \LogicException('getContent() can only be called once when using the resource return type.');
diff --git a/lib/public/irequest.php b/lib/public/irequest.php
index cd39855950b..9f335b06f2a 100644
--- a/lib/public/irequest.php
+++ b/lib/public/irequest.php
@@ -77,15 +77,6 @@ interface IRequest {
/**
- * Shortcut for getting session variables
- *
- * @param string $key the key that will be taken from the $_SESSION array
- * @return array the value in the $_SESSION element
- */
- function getSession($key);
-
-
- /**
* Shortcut for getting cookie variables
*
* @param string $key the key that will be taken from the $_COOKIE array
diff --git a/lib/public/iservercontainer.php b/lib/public/iservercontainer.php
index d88330698dc..ec7212b306e 100644
--- a/lib/public/iservercontainer.php
+++ b/lib/public/iservercontainer.php
@@ -62,4 +62,11 @@ interface IServerContainer {
*/
function getRootFolder();
+ /**
+ * Returns the current session
+ *
+ * @return \OCP\ISession
+ */
+ function getSession();
+
}
diff --git a/lib/public/isession.php b/lib/public/isession.php
new file mode 100644
index 00000000000..0a77b0c823b
--- /dev/null
+++ b/lib/public/isession.php
@@ -0,0 +1,56 @@
+<?php
+/**
+ * Copyright (c) 2013 Thomas Tanghus (thomas@tanghus.net)
+ * @author Thomas Tanghus
+ * @author Robin Appelman
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OCP;
+
+/**
+ * Interface ISession
+ *
+ * wrap PHP's internal session handling into the ISession interface
+ */
+interface ISession {
+
+ /**
+ * Set a value in the session
+ *
+ * @param string $key
+ * @param mixed $value
+ */
+ public function set($key, $value);
+
+ /**
+ * Get a value from the session
+ *
+ * @param string $key
+ * @return mixed should return null if $key does not exist
+ */
+ public function get($key);
+
+ /**
+ * Check if a named key exists in the session
+ *
+ * @param string $key
+ * @return bool
+ */
+ public function exists($key);
+
+ /**
+ * Remove a $key/$value pair from the session
+ *
+ * @param string $key
+ */
+ public function remove($key);
+
+ /**
+ * Reset and recreate the session
+ */
+ public function clear();
+
+}
diff --git a/lib/server.php b/lib/server.php
index 9e87bd3190d..0eee3e0f73a 100644
--- a/lib/server.php
+++ b/lib/server.php
@@ -36,7 +36,6 @@ class Server extends SimpleContainer implements IServerContainer {
'files' => $_FILES,
'server' => $_SERVER,
'env' => $_ENV,
- 'session' => $_SESSION,
'cookies' => $_COOKIE,
'method' => (isset($_SERVER) && isset($_SERVER['REQUEST_METHOD']))
? $_SERVER['REQUEST_METHOD']
@@ -97,4 +96,14 @@ class Server extends SimpleContainer implements IServerContainer {
{
return $this->query('RootFolder');
}
+
+ /**
+ * Returns the current session
+ *
+ * @return \OCP\ISession
+ */
+ function getSession() {
+ return \OC::$session;
+ }
+
}
diff --git a/lib/session/session.php b/lib/session/session.php
index 55515f57a87..c55001eccac 100644
--- a/lib/session/session.php
+++ b/lib/session/session.php
@@ -8,7 +8,7 @@
namespace OC\Session;
-abstract class Session implements \ArrayAccess {
+abstract class Session implements \ArrayAccess, \OCP\ISession {
/**
* $name serves as a namespace for the session keys
*
diff --git a/tests/lib/appframework/controller/ControllerTest.php b/tests/lib/appframework/controller/ControllerTest.php
index 246371d249c..4441bddfca9 100644
--- a/tests/lib/appframework/controller/ControllerTest.php
+++ b/tests/lib/appframework/controller/ControllerTest.php
@@ -152,9 +152,4 @@ class ControllerTest extends \PHPUnit_Framework_TestCase {
$this->assertEquals('daheim', $this->controller->env('PATH'));
}
- public function testGetSessionVariable(){
- $this->assertEquals('kein', $this->controller->session('sezession'));
- }
-
-
}