From: Stéphane Jacob Date: Fri, 25 Feb 2011 08:55:05 +0000 (+0100) Subject: Adapts platal login to new mail chain. X-Git-Tag: xorg/1.1.0~110 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=3d3797add2ad36b1122482756294c66965e10d6c;p=platal.git Adapts platal login to new mail chain. Signed-off-by: Stéphane Jacob --- diff --git a/classes/xorgsession.php b/classes/xorgsession.php index 2e85275..8578a61 100644 --- a/classes/xorgsession.php +++ b/classes/xorgsession.php @@ -81,10 +81,11 @@ class XorgSession extends PlSession { if ($login_type == 'alias') { $res = XDB::query('SELECT a.uid, a.password - FROM accounts AS a - INNER JOIN aliases AS l ON (l.uid = a.uid AND l.type != \'homonyme\') - WHERE l.alias = {?} AND a.state = \'active\'', - $login); + FROM accounts AS a + INNER JOIN email_source_account AS e ON (e.uid = a.uid) + INNER JOIN email_virtual_domains AS d ON (e.domain = d.id) + WHERE e.email = {?} AND d.name = {?}', + $login, Platal::globals()->mail->domain); } else { $res = XDB::query('SELECT uid, password FROM accounts @@ -140,29 +141,20 @@ class XorgSession extends PlSession if (S::suid()) { $login = $uname = S::suid('uid'); $loginType = 'uid'; - $redirect = false; } else { $uname = Post::v('username'); if (Post::s('domain') == "alias") { - $res = XDB::query('SELECT redirect - FROM virtual - INNER JOIN virtual_redirect USING(vid) - WHERE alias LIKE {?}', - $uname . '@' . $globals->mail->alias_dom); - $redirect = $res->fetchOneCell(); - if ($redirect) { - $login = substr($redirect, 0, strpos($redirect, '@')); - } else { - $login = ''; - } - $loginType = 'alias'; + $login = XDB::fetchOneCell('SELECT uid + FROM email_source_account AS e + INNER JOIN email_virtual_domains AS d ON (e.domain = d.id) + WHERE e.email = {?} AND d.name = {?}', + $uname, Platal::globals()->mail->alias_dom); + $loginType = 'uid'; } else if (Post::s('domain') == "ax") { $login = $uname; - $redirect = false; $loginType = 'hruid'; } else { $login = $uname; - $redirect = false; $loginType = is_numeric($uname) ? 'uid' : 'alias'; } } diff --git a/plugins/insert.getUserName.php b/plugins/insert.getUserName.php index 494e78e..db7c506 100644 --- a/plugins/insert.getUserName.php +++ b/plugins/insert.getUserName.php @@ -31,27 +31,18 @@ function smarty_insert_getUsername() } if (Cookie::v('domain', 'login') != 'alias') { - $res = XDB::query("SELECT alias - FROM aliases - WHERE uid = {?} AND (type IN ('a_vie', 'alias') AND FIND_IN_SET('bestalias', flags))", - $id); - return $res->fetchOneCell(); + return XDB::fetchOneCell('SELECT email + FROM email_source_account AS e + INNER JOIN email_virtual_domains AS d ON (e.domain = d.id) + WHERE e.uid = {?} AND d.name = {?} AND FIND_IN_SET(\'bestalias\', e.flags)', + $id, $globals->mail->domain); } else { - $res = XDB::query(" - SELECT v.alias - FROM virtual AS v - INNER JOIN virtual_redirect USING (vid) - INNER JOIN aliases AS a ON (uid = {?} AND a.type = 'a_vie') - WHERE redirect = CONCAT(a.alias, {?}) OR redirect = CONCAT(a.alias, {?})", - $id, '@' . $globals->mail->domain, '@' . $globals->mail->domain2); - $aliases = $res->fetchAllAssoc(); - foreach ($aliases as $alias) { - list($login, $domain) = explode('@', $alias['alias']); - if ($domain == $globals->mail->alias_dom || $domain == $globals->mail->alias_dom2) { - return $login; - } - } - } + return XDB::fetchOneCell('SELECT email + FROM email_source_account AS e + INNER JOIN email_virtual_domains AS d ON (e.domain = d.id) + WHERE e.uid = {?} AND d.name = {?}', + $id, $globals->mail->alias_dom); + } return ''; }