Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
100.00% |
1 / 1 |
|
100.00% |
9 / 9 |
CRAP | |
100.00% |
14 / 14 |
WriteSafeSessionHandler | |
100.00% |
1 / 1 |
|
100.00% |
9 / 9 |
10 | |
100.00% |
14 / 14 |
__construct | |
100.00% |
1 / 1 |
1 | |
100.00% |
3 / 3 |
|||
close | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
destroy | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
gc | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
open | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
read | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
write | |
100.00% |
1 / 1 |
2 | |
100.00% |
3 / 3 |
|||
setSessionWritable | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
isSessionWritable | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
<?php | |
/** | |
* @file | |
* Contains \Drupal\Core\Session\WriteSafeSessionHandler. | |
*/ | |
namespace Drupal\Core\Session; | |
/** | |
* Wraps another SessionHandlerInterface to prevent writes when not allowed. | |
*/ | |
class WriteSafeSessionHandler implements \SessionHandlerInterface, WriteSafeSessionHandlerInterface { | |
/** | |
* @var \SessionHandlerInterface | |
*/ | |
protected $wrappedSessionHandler; | |
/** | |
* Whether or not the session is enabled for writing. | |
* | |
* @var bool | |
*/ | |
protected $sessionWritable; | |
/** | |
* Constructs a new write safe session handler. | |
* | |
* @param \SessionHandlerInterface $wrapped_session_handler | |
* The underlying session handler. | |
* @param bool $session_writable | |
* Whether or not the session should be initially writable. | |
*/ | |
public function __construct(\SessionHandlerInterface $wrapped_session_handler, $session_writable = TRUE) { | |
$this->wrappedSessionHandler = $wrapped_session_handler; | |
$this->sessionWritable = $session_writable; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function close() { | |
return $this->wrappedSessionHandler->close(); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function destroy($session_id) { | |
return $this->wrappedSessionHandler->destroy($session_id); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function gc($max_lifetime) { | |
return $this->wrappedSessionHandler->gc($max_lifetime); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function open($save_path, $session_id) { | |
return $this->wrappedSessionHandler->open($save_path, $session_id); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function read($session_id) { | |
return $this->wrappedSessionHandler->read($session_id); | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function write($session_id, $session_data) { | |
if ($this->isSessionWritable()) { | |
return $this->wrappedSessionHandler->write($session_id, $session_data); | |
} | |
else { | |
return TRUE; | |
} | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function setSessionWritable($flag) { | |
$this->sessionWritable = (bool) $flag; | |
} | |
/** | |
* {@inheritdoc} | |
*/ | |
public function isSessionWritable() { | |
return $this->sessionWritable; | |
} | |
} |