diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2013-09-18 03:10:42 -0700 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2013-09-18 03:10:42 -0700 |
commit | 415a27c1aea82bad9f7da973854c28f15cadbee3 (patch) | |
tree | 772fe7bf157ffad41e6d2b4bbce592a0d46c7ad6 | |
parent | 9b420e8660404de27e3af629bfca188ae90cf7bd (diff) | |
parent | d3f88ceeb49b9b86d32124163b0cea82567a4911 (diff) | |
download | nextcloud-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.php | 10 | ||||
-rw-r--r-- | lib/appframework/http/request.php | 51 | ||||
-rw-r--r-- | lib/public/irequest.php | 9 | ||||
-rw-r--r-- | lib/public/iservercontainer.php | 7 | ||||
-rw-r--r-- | lib/public/isession.php | 56 | ||||
-rw-r--r-- | lib/server.php | 11 | ||||
-rw-r--r-- | lib/session/session.php | 2 | ||||
-rw-r--r-- | tests/lib/appframework/controller/ControllerTest.php | 5 |
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')); - } - - } |