Introduces email type alias_aux for emails in auxiliary domains.
[platal.git] / classes / user.php
index 0407fd3..8b4160b 100644 (file)
@@ -338,7 +338,7 @@ class User extends PlUser
                                  $this->id(), $profile->id());
     }
 
-    /** Fetch existing @alias_dom alias.
+    /** Fetch existing auxiliary alias.
      */
     public function emailAlias()
     {
@@ -349,7 +349,7 @@ class User extends PlUser
         return null;
     }
 
-    /** Fetch existing @alias_dom aliases.
+    /** Fetch existing auxiliary aliases.
      */
     public function emailAliases()
     {
@@ -357,9 +357,9 @@ class User extends PlUser
                                    FROM  email_source_account  AS s
                              INNER JOIN  email_virtual_domains AS m ON (s.domain = m.id)
                              INNER JOIN  email_virtual_domains AS d ON (d.aliasing = m.id)
-                                  WHERE  s.uid = {?} AND m.name = {?}
+                                  WHERE  s.uid = {?} AND s.type = \'alias_aux\'
                                ORDER BY  d.name',
-                                $this->id(), Platal::globals()->mail->alias_dom);
+                                $this->id());
     }
 
     /** Get all group aliases the user belongs to.
@@ -373,16 +373,19 @@ class User extends PlUser
                                  INNER JOIN  email_source_account  AS s  ON (s.uid = {?})
                                  INNER JOIN  email_virtual_domains AS ms ON (s.domain = ms.id)
                                  INNER JOIN  email_virtual_domains AS ds ON (ds.aliasing = ms.id)
-                                      WHERE  v.redirect = CONCAT(s.email, \'@\', ds.name) AND v.type = \'user\'',
+                                      WHERE  v.redirect = CONCAT(s.email, \'@\', ds.name) AND v.type = \'alias\'',
                                     $this->id());
         } else {
-            return XDB::fetchAllAssoc('SELECT  CONCAT(v.email, \'@\', dv.name) AS alias, v.uid IS NOT NULL AS sub
+            return XDB::fetchAllAssoc('alias',
+                                      'SELECT  CONCAT(v.email, \'@\', dv.name) AS alias, MAX(v.redirect = CONCAT(s.email, \'@\', ds.name)) AS sub
                                          FROM  email_virtual         AS v
                                    INNER JOIN  email_virtual_domains AS dv ON (v.domain = dv.id AND dv.name = {?})
                                    INNER JOIN  email_source_account  AS s  ON (s.uid = {?})
                                    INNER JOIN  email_virtual_domains AS ms ON (s.domain = ms.id)
                                    INNER JOIN  email_virtual_domains AS ds ON (ds.aliasing = ms.id)
-                                        WHERE  v.redirect = CONCAT(s.email, \'@\', ds.name) AND v.type = \'user\'',
+                                        WHERE  v.type = \'alias\'
+                                     GROUP BY  v.email
+                                     ORDER BY  v.email',
                                       $domain, $this->id());
         }
     }