X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fsession.php;h=4a80761ec3f185b671eae9e4fbe3b13b27869453;hb=a734bb2a0a4aecc3ceb672a211b5018df6b6698f;hp=3bd434928ee4f02d86769a509f870215019baa2a;hpb=5ddeb07cc787dd1dc3630a31f1528f5cc7c4d9b9;p=platal.git diff --git a/classes/session.php b/classes/session.php index 3bd4349..4a80761 100644 --- a/classes/session.php +++ b/classes/session.php @@ -19,9 +19,6 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * ***************************************************************************/ -global $lc_accent, $lc_plain, $uc_accent, $uc_plain; -require_once 'diogenes/diogenes.misc.inc.php'; - class Session { public static function init() @@ -30,6 +27,9 @@ class Session 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() @@ -53,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() @@ -88,10 +98,11 @@ function check_perms() if ($_SESSION['log']) { $_SESSION['log']->log("noperms",$_SERVER['PHP_SELF']); } - $page->kill("Tu n'as pas les permissions nécessaires pour accéder à cette page."); + $page->kill("Tu n'as pas les permissions nécessaires pour accéder à cette page."); } } // }}} +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: ?>