X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fvalidations%2Faliases.inc.php;h=259939ffcad97132e842f4e638a1bcbcba7b662d;hb=15b9758d68d315d2600af1741b36b44efe3b2cef;hp=2cf9509119a70436ac98ff3ef4059f37f6b5261b;hpb=b45037625befabbc6a25ab0487321d8b77f62fa4;p=platal.git diff --git a/include/validations/aliases.inc.php b/include/validations/aliases.inc.php index 2cf9509..259939f 100644 --- a/include/validations/aliases.inc.php +++ b/include/validations/aliases.inc.php @@ -79,8 +79,6 @@ class AliasReq extends Validate // function commit() {{{2 public function commit() { - global $globals; - if ($this->user->hasProfile()) { XDB::execute('UPDATE profiles SET alias_pub = {?} @@ -89,17 +87,23 @@ class AliasReq extends Validate } if ($this->old) { - $success = XDB::execute('UPDATE email_source_account AS s - INNER JOIN email_virtual_domains AS d ON (s.domain = d.id) - SET s.email = {?} - WHERE s.uid = {?} AND d.name = {?}', - $this->alias, $this->user->id(), $globals->mail->alias_dom); + $success = XDB::execute('UPDATE email_source_account + SET email = {?} + WHERE uid = {?} AND type = \'alias_aux\'', + $this->alias, $this->user->id()); } else { $success = XDB::execute('INSERT INTO email_source_account (email, uid, domain, type, flags) - SELECT {?}, {?}, id, \'alias\', \'\' + SELECT {?}, {?}, id, \'alias_aux\', \'\' FROM email_virtual_domains WHERE name = {?}', - $this->alias, $this->user->id(), $globals->mail->alias_dom); + $this->alias, $this->user->id(), Platal::globals()->mail->alias_dom); + } + + if ($success) { + // Update the local User object, to pick up the new bestalias. + require_once 'emails.inc.php'; + fix_bestalias($this->user); + $this->user = User::getSilentWithUID($this->user->id()); } return $success;