X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fsession.php;h=4a80761ec3f185b671eae9e4fbe3b13b27869453;hb=44837f0200b687b01145e5a7b984830152dcd57d;hp=004066e3a5dd60cd6919325b602cdbe6b63f9f67;hpb=a14159bffdc1ea08c97e6634dc1480619bdc478a;p=platal.git diff --git a/classes/session.php b/classes/session.php index 004066e..4a80761 100644 --- a/classes/session.php +++ b/classes/session.php @@ -26,7 +26,10 @@ class Session @session_start(); if (empty($_SESSION['challenge'])) { $_SESSION['challenge'] = sha1(uniqid(rand(), true)); - } + } + if (!isset($_SESSION['perms']) || !($_SESSION['perms'] instanceof FlagSet)) { + $_SESSION['perms'] = new FlagSet(); + } } public static function destroy() @@ -50,15 +53,25 @@ class Session return isset($_SESSION[$key]) ? $_SESSION[$key] : $default; } + public static function s($key, $default = '') + { + return (string)Session::v($key, $default); + } + public static function i($key, $default = 0) { $i = Session::v($key, $default); return is_numeric($i) ? intval($i) : $default; } + public static function l(array $keys) + { + return array_map(array('Session', 'v'), $keys); + } + public static function has_perms() { - return Session::logged() && Session::v('perms') == PERMS_ADMIN; + return Session::logged() && Session::v('perms')->hasFlag(PERMS_ADMIN); } public static function logged()