Other stuff adapted to new mail chain.
authorStéphane Jacob <sj@m4x.org>
Fri, 25 Feb 2011 14:17:37 +0000 (15:17 +0100)
committerStéphane Jacob <sj@m4x.org>
Sun, 27 Feb 2011 22:19:02 +0000 (23:19 +0100)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
include/name.func.inc.php
include/validations/names.inc.php
include/webservices/manageurs.server.inc.php
modules/auth/auth.inc.php
modules/platal.php
modules/register.php

index 7b56365..d3d11a2 100644 (file)
@@ -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;
index b924b1f..ce5e818 100644 (file)
@@ -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;
                 }
             }
index 061a1df..fa56a3c 100644 (file)
@@ -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 = {?})
index ab488d1..fc9cf18 100644 (file)
@@ -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'])) {
index 3ebcd99..3be5bc1 100644 (file)
@@ -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" <support+password@' . $globals->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
index d0c5323..36868db 100644 (file)
@@ -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();