{
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
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';
}
}
}
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 '';
}