Adapts Xnet event aliases to new mail chain.
[platal.git] / include / emails.inc.php
index 3af0096..e1750a7 100644 (file)
@@ -24,7 +24,7 @@ define('ERROR_INACTIVE_REDIRECTION', 2);
 define('ERROR_INVALID_EMAIL', 3);
 define('ERROR_LOOP_EMAIL', 4);
 
-function add_to_list_alias(User $user, $local_part, $domain)
+function add_to_list_alias(User $user, $local_part, $domain, $type = 'user')
 {
     Platal::assert($user !== null);
 
@@ -35,7 +35,7 @@ function add_to_list_alias(User $user, $local_part, $domain)
                  $local_part, $user->forlifeEmail(), $type, $domain);
 }
 
-function delete_from_list_alias(User $user, $local_part, $domain)
+function delete_from_list_alias(User $user, $local_part, $domain, $type = 'user')
 {
     Platal::assert($user !== null);
 
@@ -47,6 +47,17 @@ function delete_from_list_alias(User $user, $local_part, $domain)
                  $local_part, $domain, $user->forlifeEmail(), $type);
 }
 
+function update_list_alias(User $user, $former_email, $local_part, $domain, $type = 'user')
+{
+    Platal::assert($user !== null);
+
+    XDB::execute('UPDATE  email_virtual         AS v
+              INNER JOIN  email_virtual_domains AS d ON (v.domain = d.id)
+                     SET  v.redirect = {?}
+                   WHERE  v.redirect = {?} AND d.name = {?} AND v.email = {?} AND v.type = {?}',
+                 $user->forlifeEmail(), $former_email, $domain, $local_part, $type);
+}
+
 function list_alias_members($local_part, $domain)
 {
     $emails = XDB::fetchColumn('SELECT  DISTINCT(redirect)