X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=classes%2Fs.php;h=e741e8a6dbc428abb702bace60d668c7c627ee3d;hb=refs%2Fheads%2Fcore%2Fmaster;hp=7df67c904fd220fc76c0b21ac713d632edf18b8d;hpb=f1c8bb75eaae934ac2dd1cbd7f8bbc10960413ee;p=platal.git diff --git a/classes/s.php b/classes/s.php index 7df67c9..e741e8a 100644 --- a/classes/s.php +++ b/classes/s.php @@ -1,6 +1,6 @@ isValid($uid)) { + global $platal; if (S::has('suid')) { $suid = S::v('suid'); - S::set('log', PlLogger::get(S::i('uid', $uid), $suid['uid'])); + S::set('log', $platal->buildLogger(S::i('uid', $uid), $suid['uid'])); } else if (S::has('uid') || $uid) { - S::set('log', PlLogger::get(S::i('uid', $uid))); + S::set('log', $platal->buildLogger(S::i('uid', $uid))); } else { S::set('log', PlLogger::dummy($uid)); } @@ -116,18 +117,24 @@ class S * move into the php session (and data it helds should be removed from * the php session). */ private static $user = null; - public static function &user() + public static function &user($forceFetch = false) { - if (self::$user == null && class_exists('User')) { - self::$user = User::getSilentWithValues(S::i('uid'), $_SESSION); + if (($forceFetch || self::$user == null) && class_exists('User')) { + if (S::has('user') && S::v('user') instanceof User) { + self::$user = S::v('user'); + } else { + self::$user = User::getSilentWithValues(S::i('uid'), $_SESSION); + } } return self::$user; } - public static function has_perms() + public static function changeSession(array $newSession) { - // XXX: Deprecated, use S::admin() instead - return self::admin(); + $oldSession = $_SESSION; + $_SESSION = $newSession; + self::$user = null; + return $oldSession; } public static function logged() @@ -184,5 +191,5 @@ class S } } -// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8: ?>