Checks the current logger is still valid in S::logger().
[platal.git] / classes / s.php
index 9be89a7..e14c440 100644 (file)
@@ -74,12 +74,15 @@ class S
 
     public static function logger($uid = null)
     {
-        if (!S::has('log')) {
+        $uid = S::i('uid', $uid);
+        if (!S::has('log') || !S::v('log')->isValid($uid)) {
             if (S::has('suid')) {
                 $suid = S::v('suid');
-                S::set('log', new PlLogger(S::v('uid', $uid), $suid['uid']));
+                S::set('log', PlLogger::get(S::i('uid', $uid), $suid['uid']));
             } else if (S::has('uid') || $uid) {
-                S::set('log', new PlLogger(S::v('uid', $uid)));
+                S::set('log', PlLogger::get(S::i('uid', $uid)));
+            } else {
+                S::set('log', PlLogger::dummy($uid));
             }
         }
         return S::v('log');
@@ -96,7 +99,7 @@ class S
     private static $user = null;
     public static function &user()
     {
-        if (self::$user == null) {
+        if (self::$user == null && class_exists('User')) {
             self::$user = User::getSilentWithValues(S::i('uid'), $_SESSION);
         }
         return self::$user;
@@ -109,12 +112,12 @@ class S
 
     public static function logged()
     {
-        return S::v('auth', AUTH_PUBLIC) > AUTH_PUBLIC;
+        return S::i('auth', AUTH_PUBLIC) >= Platal::session()->loggedLevel();
     }
 
     public static function identified()
     {
-        return S::v('auth', AUTH_PUBLIC) >= Platal::session()->sureLevel();
+        return S::i('auth', AUTH_PUBLIC) >= Platal::session()->sureLevel();
     }
 
     // Anti-XSRF protections.