/usr/share/php/Icinga/Web/Window.php is in php-icinga 2.1.0-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | <?php
/* Icinga Web 2 | (c) 2013-2015 Icinga Development Team | GPLv2+ */
namespace Icinga\Web;
use Icinga\Web\Session;
class Window
{
const UNDEFINED = 'undefined';
protected $id;
public function __construct($id)
{
$this->id = $id;
}
public function isUndefined()
{
return $this->id === self::UNDEFINED;
}
public function getId()
{
return $this->id;
}
/**
* Return a window-aware session by using the given prefix
*
* @param string $prefix The prefix to use
* @param bool $reset Whether to reset any existing session-data
*
* @return SessionNamespace
*/
public function getSessionNamespace($prefix, $reset = false)
{
$session = Session::getSession();
$identifier = $prefix . '_' . $this->id;
if ($reset && $session->hasNamespace($identifier)) {
$session->removeNamespace($identifier);
}
$namespace = $session->getNamespace($identifier);
$nsUndef = $prefix . '_' . self::UNDEFINED;
if (!$reset && $this->id !== self::UNDEFINED && $session->hasNamespace($nsUndef)) {
// We do not have any window-id on the very first request. Now we add
// all values from the namespace, that has been created in this case,
// to the new one and remove it afterwards.
foreach ($session->getNamespace($nsUndef) as $name => $value) {
$namespace->set($name, $value);
}
$session->removeNamespace($nsUndef);
}
return $namespace;
}
public static function generateId()
{
$letters = 'abcefghijklmnopqrstuvwxyz';
return substr(str_shuffle($letters), 0, 12);
}
}
|