mirror of
https://github.com/kamilwylegala/cakephp2-php8.git
synced 2025-01-19 02:56:15 +00:00
Making SessionComponent mostly a wrapper for CakeSession.
Adding CakeSession::begin() to replace SessionComponent::__start(). Tests updated. Tests related to autoStart were removed/skipped as that feature isn't really around right now.
This commit is contained in:
parent
e660416545
commit
4b65ebd64f
3 changed files with 71 additions and 118 deletions
|
@ -211,6 +211,24 @@ class CakeSession {
|
|||
return self::started();
|
||||
}
|
||||
|
||||
/**
|
||||
* Begins the session if it hasn't already been started, and runs _checkValid which sets up some
|
||||
* session tampering settings.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public static function begin() {
|
||||
if (self::started() === false) {
|
||||
if (!self::id() && self::start()) {
|
||||
self::_checkValid();
|
||||
} else {
|
||||
self::start();
|
||||
}
|
||||
}
|
||||
self::$error = array();
|
||||
return self::started();
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine if Session has been started.
|
||||
*
|
||||
|
@ -339,6 +357,19 @@ class CakeSession {
|
|||
return self::$valid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get / Set the userAgent
|
||||
*
|
||||
* @param string $userAgent Set the userAgent
|
||||
* @return void
|
||||
*/
|
||||
public static function userAgent($userAgent = null) {
|
||||
if ($userAgent) {
|
||||
self::$_userAgent = $userAgent;
|
||||
}
|
||||
return self::$_userAgent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns given session variable, or all of them, if no parameters given.
|
||||
*
|
||||
|
|
|
@ -31,7 +31,7 @@ if (!class_exists('cakesession')) {
|
|||
* @link http://book.cakephp.org/view/1310/Sessions
|
||||
*
|
||||
*/
|
||||
class SessionComponent extends CakeSession {
|
||||
class SessionComponent extends Object {
|
||||
|
||||
/**
|
||||
* Used to determine if methods implementation is used, or bypassed
|
||||
|
@ -54,12 +54,9 @@ class SessionComponent extends CakeSession {
|
|||
*
|
||||
* @param string $base The base path for the Session
|
||||
*/
|
||||
public function __construct($base = null) {
|
||||
if (Configure::read('Session.start') === true) {
|
||||
parent::__construct($base);
|
||||
} else {
|
||||
$this->__active = false;
|
||||
}
|
||||
|
||||
public function __construct() {
|
||||
CakeSession::begin();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -69,9 +66,9 @@ class SessionComponent extends CakeSession {
|
|||
* @return void
|
||||
*/
|
||||
public function startup(&$controller) {
|
||||
if ($this->started() === false && $this->__active === true) {
|
||||
/*if ($this->started() === false && $this->__active === true) {
|
||||
$this->_start();
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -81,11 +78,11 @@ class SessionComponent extends CakeSession {
|
|||
* @return void
|
||||
*/
|
||||
public function activate($base = null) {
|
||||
if ($this->__active === true) {
|
||||
/*if ($this->__active === true) {
|
||||
return;
|
||||
}
|
||||
parent::__construct($base);
|
||||
$this->__active = true;
|
||||
$this->__active = true;*/
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -104,10 +101,7 @@ class SessionComponent extends CakeSession {
|
|||
* @return void
|
||||
*/
|
||||
public function userAgent($userAgent = null) {
|
||||
if ($userAgent) {
|
||||
$this->_userAgent = $userAgent;
|
||||
}
|
||||
return $this->_userAgent;
|
||||
return CakeSession::userAgent($userAgent);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -122,22 +116,7 @@ class SessionComponent extends CakeSession {
|
|||
* @link http://book.cakephp.org/view/1312/write
|
||||
*/
|
||||
public function write($name, $value = null) {
|
||||
if ($this->__active === true) {
|
||||
$this->_start();
|
||||
if (is_array($name)) {
|
||||
foreach ($name as $key => $value) {
|
||||
if (parent::write($key, $value) === false) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (parent::write($name, $value) === false) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
return CakeSession::write($name, $value);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -151,11 +130,7 @@ class SessionComponent extends CakeSession {
|
|||
* @link http://book.cakephp.org/view/1314/read
|
||||
*/
|
||||
public function read($name = null) {
|
||||
if ($this->__active === true) {
|
||||
$this->_start();
|
||||
return parent::read($name);
|
||||
}
|
||||
return false;
|
||||
return CakeSession::read($name);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -168,11 +143,7 @@ class SessionComponent extends CakeSession {
|
|||
* @link http://book.cakephp.org/view/1316/delete
|
||||
*/
|
||||
public function delete($name) {
|
||||
if ($this->__active === true) {
|
||||
$this->_start();
|
||||
return parent::delete($name);
|
||||
}
|
||||
return false;
|
||||
return CakeSession::delete($name);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -185,11 +156,7 @@ class SessionComponent extends CakeSession {
|
|||
* @link http://book.cakephp.org/view/1315/check
|
||||
*/
|
||||
public function check($name) {
|
||||
if ($this->__active === true) {
|
||||
$this->_start();
|
||||
return parent::check($name);
|
||||
}
|
||||
return false;
|
||||
return CakeSession::check($name);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -201,11 +168,7 @@ class SessionComponent extends CakeSession {
|
|||
* @link http://book.cakephp.org/view/1318/error
|
||||
*/
|
||||
public function error() {
|
||||
if ($this->__active === true) {
|
||||
$this->_start();
|
||||
return parent::error();
|
||||
}
|
||||
return false;
|
||||
return CakeSession::error();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -222,10 +185,7 @@ class SessionComponent extends CakeSession {
|
|||
* @link http://book.cakephp.org/view/1313/setFlash
|
||||
*/
|
||||
public function setFlash($message, $element = 'default', $params = array(), $key = 'flash') {
|
||||
if ($this->__active === true) {
|
||||
$this->_start();
|
||||
$this->write('Message.' . $key, compact('message', 'element', 'params'));
|
||||
}
|
||||
CakeSession::write('Message.' . $key, compact('message', 'element', 'params'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -236,10 +196,7 @@ class SessionComponent extends CakeSession {
|
|||
* @return void
|
||||
*/
|
||||
public function renew() {
|
||||
if ($this->__active === true) {
|
||||
$this->_start();
|
||||
parent::renew();
|
||||
}
|
||||
return CakeSession::renew();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -250,11 +207,7 @@ class SessionComponent extends CakeSession {
|
|||
* @return boolean true is session is valid, false is session is invalid
|
||||
*/
|
||||
public function valid() {
|
||||
if ($this->__active === true) {
|
||||
$this->_start();
|
||||
return parent::valid();
|
||||
}
|
||||
return false;
|
||||
return CakeSession::valid();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -266,10 +219,7 @@ class SessionComponent extends CakeSession {
|
|||
* @link http://book.cakephp.org/view/1317/destroy
|
||||
*/
|
||||
public function destroy() {
|
||||
if ($this->__active === true) {
|
||||
$this->_start();
|
||||
parent::destroy();
|
||||
}
|
||||
return CakeSession::destroy();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -282,7 +232,7 @@ class SessionComponent extends CakeSession {
|
|||
* @return string
|
||||
*/
|
||||
public function id($id = null) {
|
||||
return parent::id($id);
|
||||
return CakeSession::id($id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -293,6 +243,7 @@ class SessionComponent extends CakeSession {
|
|||
* @access protected
|
||||
*/
|
||||
protected function _start() {
|
||||
/*
|
||||
if ($this->started() === false) {
|
||||
if (!$this->id() && parent::start()) {
|
||||
parent::_checkValid();
|
||||
|
@ -301,6 +252,7 @@ class SessionComponent extends CakeSession {
|
|||
}
|
||||
}
|
||||
return $this->started();
|
||||
*/
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -88,6 +88,7 @@ class SessionComponentTest extends CakeTestCase {
|
|||
*/
|
||||
function setUp() {
|
||||
$this->_session = Configure::read('Session');
|
||||
$_SESSION = array();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -97,6 +98,7 @@ class SessionComponentTest extends CakeTestCase {
|
|||
* @return void
|
||||
*/
|
||||
function tearDown() {
|
||||
CakeSession::destroy();
|
||||
Configure::write('Session', $this->_session);
|
||||
}
|
||||
|
||||
|
@ -107,6 +109,7 @@ class SessionComponentTest extends CakeTestCase {
|
|||
* @return void
|
||||
*/
|
||||
function testSessionAutoStart() {
|
||||
$this->markTestSkipped('Autostarting is broken/disabled for now.');
|
||||
Configure::write('Session.start', false);
|
||||
$Session = new SessionComponent();
|
||||
$this->assertFalse($Session->active());
|
||||
|
@ -139,6 +142,7 @@ class SessionComponentTest extends CakeTestCase {
|
|||
* @return void
|
||||
*/
|
||||
function testSessionActivate() {
|
||||
$this->markTestSkipped('Activation is not implemented right now, sessions are always on');
|
||||
$Session = new SessionComponent();
|
||||
|
||||
$this->assertTrue($Session->active());
|
||||
|
@ -165,24 +169,13 @@ class SessionComponentTest extends CakeTestCase {
|
|||
|
||||
$this->assertTrue($Session->valid());
|
||||
|
||||
Configure::write('Session.checkAgent', true);
|
||||
$Session->userAgent('rweerw');
|
||||
$this->assertFalse($Session->valid());
|
||||
|
||||
Configure::write('Session.start', false);
|
||||
$Session = new SessionComponent();
|
||||
$this->assertFalse($Session->active());
|
||||
$this->assertFalse($Session->valid());
|
||||
Configure::write('Session.start', true);
|
||||
|
||||
$Session = new SessionComponent();
|
||||
$Session->time = $Session->read('Config.time') + 1;
|
||||
$this->assertFalse($Session->valid());
|
||||
|
||||
Configure::write('Session.checkAgent', false);
|
||||
$Session = new SessionComponent();
|
||||
$Session->time = $Session->read('Config.time') + 1;
|
||||
$this->assertFalse($Session->valid());
|
||||
Configure::write('Session.checkAgent', true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -195,12 +188,6 @@ class SessionComponentTest extends CakeTestCase {
|
|||
$Session = new SessionComponent();
|
||||
|
||||
$this->assertFalse($Session->error());
|
||||
|
||||
Configure::write('Session.start', false);
|
||||
$Session = new SessionComponent();
|
||||
$this->assertFalse($Session->active());
|
||||
$this->assertFalse($Session->error());
|
||||
Configure::write('Session.start', true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -235,13 +222,6 @@ class SessionComponentTest extends CakeTestCase {
|
|||
$this->assertTrue($Session->write(array('Test' => 'some value')));
|
||||
$this->assertEqual($Session->read('Test'), 'some value');
|
||||
$Session->delete('Test');
|
||||
|
||||
Configure::write('Session.start', false);
|
||||
$Session = new SessionComponent();
|
||||
$this->assertFalse($Session->write('Test', 'some value'));
|
||||
$Session->write('Test', 'some value');
|
||||
$this->assertFalse($Session->read('Test'));
|
||||
Configure::write('Session.start', true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -257,12 +237,6 @@ class SessionComponentTest extends CakeTestCase {
|
|||
|
||||
$Session->write('Test', 'some value');
|
||||
$this->assertTrue($Session->delete('Test'));
|
||||
|
||||
Configure::write('Session.start', false);
|
||||
$Session = new SessionComponent();
|
||||
$Session->write('Test', 'some value');
|
||||
$this->assertFalse($Session->delete('Test'));
|
||||
Configure::write('Session.start', true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -279,12 +253,6 @@ class SessionComponentTest extends CakeTestCase {
|
|||
$Session->write('Test', 'some value');
|
||||
$this->assertTrue($Session->check('Test'));
|
||||
$Session->delete('Test');
|
||||
|
||||
Configure::write('Session.start', false);
|
||||
$Session = new SessionComponent();
|
||||
$Session->write('Test', 'some value');
|
||||
$this->assertFalse($Session->check('Test'));
|
||||
Configure::write('Session.start', true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -322,7 +290,7 @@ class SessionComponentTest extends CakeTestCase {
|
|||
function testSessionId() {
|
||||
unset($_SESSION);
|
||||
$Session = new SessionComponent();
|
||||
$this->assertNull($Session->id());
|
||||
$this->assertEquals(session_id(), $Session->id());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -354,30 +322,32 @@ class SessionComponentTest extends CakeTestCase {
|
|||
$Session =& new SessionComponent();
|
||||
$Session->destroy();
|
||||
$Session->write('Test', 'some value');
|
||||
$this->assertEqual($Session->sessionTime, time() + (300 * Configure::read('Session.timeout')));
|
||||
|
||||
$this->assertEqual(CakeSession::$sessionTime, mktime() + (300 * Configure::read('Session.timeout')));
|
||||
$this->assertEqual($_SESSION['Config']['timeout'], 10);
|
||||
$this->assertEqual($_SESSION['Config']['time'], $Session->sessionTime);
|
||||
$this->assertEqual($Session->time, time());
|
||||
$this->assertEqual($_SESSION['Config']['time'], $Session->time + (300 * Configure::read('Session.timeout')));
|
||||
$this->assertEqual($_SESSION['Config']['time'], CakeSession::$sessionTime);
|
||||
$this->assertEqual(CakeSession::$time, mktime());
|
||||
$this->assertEqual($_SESSION['Config']['time'], CakeSession::$time + (Security::inactiveMins() * Configure::read('Session.timeout')));
|
||||
|
||||
Configure::write('Security.level', 'medium');
|
||||
$Session =& new SessionComponent();
|
||||
$Session->destroy();
|
||||
$Session->write('Test', 'some value');
|
||||
$this->assertEqual($Session->sessionTime, mktime() + (100 * Configure::read('Session.timeout')));
|
||||
$this->assertEqual(CakeSession::$sessionTime, mktime() + (100 * Configure::read('Session.timeout')));
|
||||
$this->assertEqual($_SESSION['Config']['timeout'], 10);
|
||||
$this->assertEqual($_SESSION['Config']['time'], $Session->sessionTime);
|
||||
$this->assertEqual($Session->time, time());
|
||||
$this->assertEqual($_SESSION['Config']['time'], $Session->time + (Security::inactiveMins() * Configure::read('Session.timeout')));
|
||||
$this->assertEqual($_SESSION['Config']['time'], CakeSession::$sessionTime);
|
||||
$this->assertEqual(CakeSession::$time, mktime());
|
||||
$this->assertEqual($_SESSION['Config']['time'], CakeSession::$time + (Security::inactiveMins() * Configure::read('Session.timeout')));
|
||||
|
||||
Configure::write('Security.level', 'high');
|
||||
$Session =& new SessionComponent();
|
||||
$Session->destroy();
|
||||
$Session->write('Test', 'some value');
|
||||
$this->assertEqual($Session->sessionTime, time() + (10 * Configure::read('Session.timeout')));
|
||||
$this->assertEqual(CakeSession::$sessionTime, mktime() + (10 * Configure::read('Session.timeout')));
|
||||
$this->assertEqual($_SESSION['Config']['timeout'], 10);
|
||||
$this->assertEqual($_SESSION['Config']['time'], $Session->sessionTime);
|
||||
$this->assertEqual($Session->time, time());
|
||||
$this->assertEqual($_SESSION['Config']['time'], $Session->time + (Security::inactiveMins() * Configure::read('Session.timeout')));
|
||||
$this->assertEqual(CakeSession::$time, mktime());
|
||||
$this->assertEqual($_SESSION['Config']['time'], CakeSession::$time + (Security::inactiveMins() * Configure::read('Session.timeout')));
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue