- register_watch_op($this->user->id(), WATCH_FICHE, '', 'search_names');
- set_profile_display($this->display_names);
- set_alias_names($this->sn_new, $this->sn_old, true, $this->new_alias);
+ update_public_names($this->profile->id(), $this->public_names);
+ update_display_names($this->profile, $this->public_names);
+
+ if (!is_null($this->profileOwner)) {
+ if (!is_null($this->old_alias)) {
+ XDB::execute('DELETE FROM email_source_account
+ WHERE FIND_IN_SET(\'usage\', flags) AND uid = {?} AND type = \'alias\'',
+ $this->profileOwner->id());
+ }
+ if (!is_null($this->new_alias)) {
+ XDB::execute('INSERT INTO email_source_account (email, uid, type, flags, domain)
+ SELECT {?}, {?}, \'alias\', \'usage\', id
+ FROM email_virtual_domains
+ WHERE name = {?}',
+ $this->new_alias, $this->profileOwner->id(), $this->profileOwner->mainEmailDomain());
+ }
+ require_once 'emails.inc.php';
+ fix_bestalias($this->profileOwner);
+
+ // Update the local User object, to pick up the new bestalias.
+ $this->profileOwner = User::getSilentWithUID($this->profileOwner->id());
+ }
+