XHTML compliance
[platal.git] / classes / session.php
index c52e239..07f6fab 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /***************************************************************************
- *  Copyright (C) 2003-2007 Polytechnique.org                              *
+ *  Copyright (C) 2003-2008 Polytechnique.org                              *
  *  http://opensource.polytechnique.org/                                   *
  *                                                                         *
  *  This program is free software; you can redistribute it and/or modify   *
@@ -27,7 +27,7 @@ class Session
         if (empty($_SESSION['challenge'])) {
             $_SESSION['challenge'] = sha1(uniqid(rand(), true));
         }
-        if (!isset($_SESSION['perms'])) {
+        if (!isset($_SESSION['perms']) || !($_SESSION['perms'] instanceof FlagSet)) {
             $_SESSION['perms'] = new FlagSet();
         }
     }
@@ -53,12 +53,22 @@ 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')->hasFlag(PERMS_ADMIN);