Merge pull request #4888 from owncloud/public_session

Public session
This commit is contained in:
Thomas Müller 2013-09-18 03:10:42 -07:00
commit 415a27c1ae
8 changed files with 90 additions and 61 deletions

View File

@ -106,16 +106,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

View File

@ -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.');

View File

@ -76,15 +76,6 @@ interface IRequest {
public function getEnv($key);
/**
* 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
*

View File

@ -62,4 +62,11 @@ interface IServerContainer {
*/
function getRootFolder();
/**
* Returns the current session
*
* @return \OCP\ISession
*/
function getSession();
}

56
lib/public/isession.php Normal file
View File

@ -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();
}

View File

@ -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;
}
}

View File

@ -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
*

View File

@ -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'));
}
}