From e2cb093d41d31622b87accf696cf6681e0a7f0dd Mon Sep 17 00:00:00 2001 From: Florent Bruneau Date: Mon, 22 Dec 2008 21:56:14 +0100 Subject: [PATCH] XorgSession internally uses a User object. Signed-off-by: Florent Bruneau --- classes/xorgsession.php | 23 +++++++++++------------ core | 2 +- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/classes/xorgsession.php b/classes/xorgsession.php index c0166fd..90cbf75 100644 --- a/classes/xorgsession.php +++ b/classes/xorgsession.php @@ -167,12 +167,13 @@ class XorgSession extends PlSession S::kill('challenge'); S::logger($uid)->log('auth_ok'); } - return $uid; + return User::getSilentWithValues(null, array('user_id' => $uid)); } - protected function startSessionAs($uid, $level) + protected function startSessionAs($user, $level) { - if ((!is_null(S::v('user')) && S::i('user') != $uid) || (S::has('uid') && S::i('uid') != $uid)) { + if ((!is_null(S::v('user')) && S::i('user') != $user->id()) + || (S::has('uid') && S::i('uid') != $user->id())) { return false; } else if (S::has('uid')) { return true; @@ -185,7 +186,7 @@ class XorgSession extends PlSession /** TODO: Move needed informations to account tables */ /** TODO: Currently suppressed data are matricule, promo */ /** TODO: Data to move are: banana_last, watch_last, last_version */ - /** TODO: Switch to new permission system */ + /** TODO: Use the User object to fetch all this */ $res = XDB::query("SELECT a.uid, a.hruid, a.display_name, a.full_name, a.password, a.sex = 'female' AS femme, a.email_format as mail_fmt, a.token, FIND_IN_SET('watch', a.flags) AS watch_account, @@ -199,7 +200,7 @@ class XorgSession extends PlSession LEFT JOIN gapps_accounts AS g ON(a.uid = g.l_userid AND g.g_status = 'active') LEFT JOIN logger.last_sessions AS ls ON (ls.uid = a.uid) LEFT JOIN logger.sessions AS s ON(s.id = ls.id) - WHERE a.uid = {?} AND a.state = 'active'", $uid); + WHERE a.uid = {?} AND a.state = 'active'", $user->id()); $sess = $res->fetchOneAssoc(); $perms = $sess['perms']; unset($sess['perms']); @@ -210,15 +211,13 @@ class XorgSession extends PlSession // Starts the session's logger, and sets up the permanent cookie. if (S::has('suid')) { $suid = S::v('suid'); - $logger = S::logger($uid); - $logger->log("suid_start", S::v('hruid') . " by " . $suid['hruid']); + S::logger()->log("suid_start", S::v('hruid') . " by " . $suid['hruid']); } else { - $logger = S::logger($uid); - $logger->saveLastSession(); - Cookie::set('uid', $uid, 300); + S::logger()->saveLastSession(); + Cookie::set('uid', $user->id(), 300); - if (S::i('auth_by_cookie') == $uid || Post::v('remember', 'false') == 'true') { - $this->setAccessCookie(false, S::i('auth_by_cookie') != $uid); + if (S::i('auth_by_cookie') == $user->id() || Post::v('remember', 'false') == 'true') { + $this->setAccessCookie(false, S::i('auth_by_cookie') != $user->id()); } else { $this->killAccessCookie(); } diff --git a/core b/core index db3659b..c1414bc 160000 --- a/core +++ b/core @@ -1 +1 @@ -Subproject commit db3659bb4a5790db592359ae50c64ae340a806dd +Subproject commit c1414bcad94fd52d3ba4a16eafec2d4acc625f6d -- 2.1.4