From: Stéphane Jacob Date: Fri, 25 Feb 2011 14:17:37 +0000 (+0100) Subject: Other stuff adapted to new mail chain. X-Git-Tag: xorg/1.1.0~106 X-Git-Url: http://git.polytechnique.org/?a=commitdiff_plain;h=c0436d0bd05bbaf2b3140d2a56c7f538d52bf0e6;p=platal.git Other stuff adapted to new mail chain. Signed-off-by: Stéphane Jacob --- diff --git a/include/name.func.inc.php b/include/name.func.inc.php index 7b56365..d3d11a2 100644 --- a/include/name.func.inc.php +++ b/include/name.func.inc.php @@ -293,14 +293,18 @@ function set_alias_names(&$sn_new, $sn_old, $pid, $uid, $update_new = false, $ne } } if ($update_new) { - XDB::execute("DELETE FROM aliases - WHERE FIND_IN_SET('usage', flags) AND uid = {?}", - $uid); + XDB::execute('DELETE s + FROM email_source_account AS s + INNER JOIN email_virtual_domains AS d ON (s.domain = d.id) + WHERE FIND_IN_SET(\'usage\', s.flags) AND s.uid = {?} AND d.name = {?}', + $uid, Platal::globals()->mail->domain); } if ($new_alias) { - XDB::execute("INSERT INTO aliases (alias, type, flags, uid) - VALUES ({?}, 'alias', 'usage', {?})", - $new_alias, $uid); + XDB::execute('INSERT INTO email_source_account (email, uid, type, flags, domain) + SELECT {?}, {?}, \'alias\', \'usage\', id + FROM email_virtual_domains + WHERE name = {?}', + $new_alias, $uid, Platal::globals()->mail->domain); } Profile::rebuildSearchTokens($pid, false); return $has_new; diff --git a/include/validations/names.inc.php b/include/validations/names.inc.php index b924b1f..ce5e818 100644 --- a/include/validations/names.inc.php +++ b/include/validations/names.inc.php @@ -59,17 +59,18 @@ class NamesReq extends ProfileValidate } if (!is_null($this->profileOwner)) { - $res = XDB::query("SELECT alias - FROM aliases - WHERE uid = {?} AND type = 'alias' AND FIND_IN_SET('usage', flags)", - $this->profileOwner->id()); - $this->old_alias = $res->fetchOneCell(); + $this->old_alias = XDB::fetchOneCell('SELECT s.email + FROM email_source_account AS s + INNER JOIN email_virtual_domains AS d ON (s.domain = d.id) + WHERE s.uid = {?} AND s.type = \'alias\' AND FIND_IN_SET(\'usage\', s.flags) AND d.name = {?}', + $this->profileOwner->id(), Platal::globals()->mail->domain); if ($this->old_alias != $this->new_alias) { - $res = XDB::query("SELECT uid - FROM aliases - WHERE alias = {?}", - $this->new_alias); - if ($res->fetchOneCell()) { + $used = XDB::fetchOneCell('SELECT COUNT(s.*) + FROM email_source_account AS s + INNER JOIN email_virtual_domains AS d ON (s.domain = d.id) + WHERE s.email = {?} AND d.name = {?}', + $this->new_alias, Platal::globals()->mail->domain); + if ($used) { $this->new_alias = null; } } diff --git a/include/webservices/manageurs.server.inc.php b/include/webservices/manageurs.server.inc.php index 061a1df..fa56a3c 100644 --- a/include/webservices/manageurs.server.inc.php +++ b/include/webservices/manageurs.server.inc.php @@ -179,10 +179,11 @@ function get_nouveau_infos($method, $params) { $res = XDB::query("SELECT pnl.name AS nom, pnu.name AS nom_usage, pnf.name AS prenom, p.sex = 'female' AS femme, p.deathdate IS NOT NULL AS decede, - p.birthdate, pd.promo, CONCAT(a.alias, '@m4x.org') AS mail + p.birthdate, pd.promo, CONCAT(e.email, '@', d.name) AS mail FROM profiles AS p INNER JOIN account_profiles AS ap ON (p.pid = ap.pid AND FIND_IN_SET('owner', perms) - INNER JOIN aliases AS a ON (a.uid = ap.uid) + INNER JOIN email_source_account AS s ON (s.uid = ap.uid AND FIND_IN_SET('bestalias', s.flags)) + INNER JOIN email_virtual_domains AS d ON (s.domain = s.id) INNER JOIN profile_display AS pd PN (p.pid = pd.pid) INNER JOIN profile_name AS pnl ON (p.pid = pnl.pid AND pnl.typeid = {?}) INNER JOIN profile_name AS pnf ON (p.pid = pnf.pid AND pnf.typeid = {?}) diff --git a/modules/auth/auth.inc.php b/modules/auth/auth.inc.php index ab488d1..fc9cf18 100644 --- a/modules/auth/auth.inc.php +++ b/modules/auth/auth.inc.php @@ -62,11 +62,10 @@ function gpex_make($chlg, $privkey, $datafields, $charset) } else if (isset($personnal_data[$val])) { $params .= gpex_prepare_param($val, $personnal_data[$val], $tohash, $charset); } else if ($val == 'username') { - $res = XDB::query("SELECT alias - FROM aliases - WHERE uid = {?} AND FIND_IN_SET('bestalias', flags)", - S::i('uid')); - $min_username = $res->fetchOneCell(); + $min_username = $XDB::fetchOneCell('SELECT email + FROM email_source_account + WHERE uid = {?} FIND_IN_SET(\'bestalias\', flags)', + S::i('uid')); $params .= gpex_prepare_param($val, $min_username, $tohash, $charset); } else if ($val == 'grpauth') { if (isset($_GET['group'])) { diff --git a/modules/platal.php b/modules/platal.php index 3ebcd99..3be5bc1 100644 --- a/modules/platal.php +++ b/modules/platal.php @@ -178,11 +178,11 @@ class PlatalModule extends PLModule # FIXME: this code is not multi-domain compatible. We should decide how # carva will extend to users not in the main domain. - $res = XDB::query("SELECT alias - FROM aliases - WHERE uid = {?} AND FIND_IN_SET('bestalias', flags)", - S::user()->id()); - $page->assign('bestalias', $res->fetchOneCell()); + $best = XDB::fetchOneCell('SELECT email + FROM email_source_account + WHERE uid = {?} AND FIND_IN_SET(\'bestalias\', flags)', + S::user()->id()); + $page->assign('bestalias', $best); } function handler_prefs_rss($page) @@ -300,35 +300,35 @@ class PlatalModule extends PLModule return; } - $res = XDB::query("SELECT COUNT(*) - FROM emails - WHERE uid = {?} AND flags != 'panne' AND flags != 'filter'", $user->id()); - $count = intval($res->fetchOneCell()); - if ($count == 0) { + if ($user->lost) { $page->assign('no_addr', true); return; } $page->assign('ok', true); - $url = rand_url_id(); + $url = rand_url_id(); XDB::execute('INSERT INTO account_lost_passwords (certificat,uid,created) VALUES ({?},{?},NOW())', $url, $user->id()); - $res = XDB::query('SELECT email - FROM emails - WHERE uid = {?} AND email = {?}', - $user->id(), Post::v('email')); - if ($res->numRows()) { - $mails = $res->fetchOneCell(); - } else { - $res = XDB::query("SELECT email - FROM emails - WHERE uid = {?} AND NOT FIND_IN_SET('filter', flags)", $user->id()); - $mails = implode(', ', $res->fetchColumn()); + $to = XDB::fetchOneCell('SELECT redirect + FROM email_redirect_account + WHERE uid = {?} AND redirect = {?}', + $user->id(), Post::t('email')); + if (is_null($to)) { + $emails = XDB::fetchColumn('SELECT redirect + FROM email_redirect_account + WHERE uid = {?} AND flags = \'inactive\' AND type = \'smtp\'', + $user->id()); + $inactives_to = implode(', ', $emails); } $mymail = new PlMailer(); $mymail->setFrom('"Gestion des mots de passe" mail->domain . '>'); - $mymail->addTo($mails); + if (is_null($to)) { + $mymail->addTo($user); + $mymail->addTo($inactives_to); + } else { + $mymail->addTo($to); + } $mymail->setSubject("Ton certificat d'authentification"); $mymail->setTxtBody("Visite la page suivante qui expire dans six heures : {$globals->baseurl}/tmpPWD/$url diff --git a/modules/register.php b/modules/register.php index d0c5323..36868db 100644 --- a/modules/register.php +++ b/modules/register.php @@ -335,13 +335,22 @@ class RegisterModule extends PLModule XDB::execute("UPDATE profiles SET birthdate = {?}, last_change = NOW() WHERE pid = {?}", $birthdate, $pid); - XDB::execute("INSERT INTO aliases (uid, alias, type) - VALUES ({?}, {?}, 'a_vie')", $uid, $forlife); - XDB::execute("INSERT INTO aliases (uid, alias, type, flags) - VALUES ({?}, {?}, 'alias', 'bestalias')", $uid, $bestalias); + XDB::execute('INSERT INTO email_source_account (email, uid, type, flags, domain) + SELECT {?}, {?}, \'forlife\', \'\', id + FROM email_virtual_domains + WHERE name = {?}', + $forlife, $uid, $globals->mail->domain); + XDB::execute('INSERT INTO email_source_account (email, uid, type, flags, domain) + SELECT {?}, {?}, \'alias\', \'bestalias\', id + FROM email_virtual_domains + WHERE name = {?}', + $bestalias, $uid, $globals->mail->domain); if ($emailXorg2) { - XDB::execute("INSERT INTO aliases (uid, alias, type) - VALUES ({?}, {?}, 'alias')", $uid, $emailXorg2); + XDB::execute('INSERT INTO email_source_account (email, uid, type, flags, domain) + SELECT {?}, {?}, \'alias\', \'\', id + FROM email_virtual_domains + WHERE name = {?}', + $emailXorg2, $uid, $globals->mail->domain); } XDB::commit();