From 3d3797add2ad36b1122482756294c66965e10d6c Mon Sep 17 00:00:00 2001 From: =?utf8?q?St=C3=A9phane=20Jacob?= Date: Fri, 25 Feb 2011 09:55:05 +0100 Subject: [PATCH] Adapts platal login to new mail chain. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Jacob --- classes/xorgsession.php | 30 +++++++++++------------------- plugins/insert.getUserName.php | 31 +++++++++++-------------------- 2 files changed, 22 insertions(+), 39 deletions(-) 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 ''; } -- 2.1.4