-
- $res = XDB::query('SELECT id, type, expire FROM aliases WHERE alias={?}', $mailorg);
-
- if ( $res->numRows() ) {
-
- list($h_id, $h_type, $expire) = $res->fetchOneRow();
-
- if ( $h_type != 'homonyme' and empty($expire) ) {
- XDB::execute('UPDATE aliases SET expire=ADDDATE(NOW(),INTERVAL 1 MONTH) WHERE alias={?}', $mailorg);
- XDB::execute('REPLACE INTO homonymes (homonyme_id,user_id) VALUES ({?},{?})', $h_id, $h_id);
- XDB::execute('REPLACE INTO homonymes (homonyme_id,user_id) VALUES ({?},{?})', $h_id, $uid);
- $res = XDB::query("SELECT alias FROM aliases WHERE id={?} AND expire IS NULL", $h_id);
- $als = $res->fetchColumn();
-
- $mailer = new PlMailer();
- $mailer->setFrom('"Support Polytechnique.org" <support@polytechnique.org>');
- $mailer->addTo("$mailorg@polytechnique.org");
- $mailer->setSubject("perte de ton alias $mailorg dans un mois !");
- $mailer->addCc('"Support Polytechnique.org" <support@polytechnique.org>');
- $msg =
- "Bonjour,\n\n".
-
- "Un homonyme vient de s'inscrire. La politique de Polytechnique.org est de fournir des\n".
- "adresses mail devinables, nous ne pouvons donc pas conserver ton alias '$mailorg' qui\n".
- "correspond maintenant à deux personnes.\n\n".
-
- "Tu gardes tout de même l'usage de cet alias pour un mois encore à compter de ce jour.\n\n".
-
- "Lorsque cet alias sera désactivé, l'adresse $mailorg@polytechnique.org renverra vers un \n".
- "robot qui indiquera qu'il y a plusieurs personnes portant le même nom ;\n".
- "cela évite que l'un des homonymes reçoive des courriels destinés à l'autre.\n\n".
-
- "Pour te connecter au site, tu pourras utiliser comme identifiant n'importe lequel de tes\n".
- "autres alias :\n".
- " ".join(', ', $als)."\n";
- "Commence dès aujourd'hui à communiquer à tes correspondants la nouvelle adresse que tu comptes utiliser !\n\n".
-
- "En nous excusant pour le désagrément occasionné,\n".
- "Cordialement,\n\n".
-
- "-- \n".
- "L'équipe de Polytechnique.org\n".
- "\"Le portail des élèves & anciens élèves de l'X\"";
- $mailer->SetTxtBody(wordwrap($msg,72));
- $mailer->send();
+
+
+ $emailXorg = PlUser::makeUserName($subState->t('firstname'), $subState->t('lastname'));
+ $suffix = (User::$sub_mail_domains[$type] ? substr(User::$sub_mail_domains[$type], 0, 1) : '') . substr($subState->v('yearpromo'), -2);
+ $emailXorg2 = $emailXorg . '.' . $suffix;
+ // Search for homonyms:
+ // * first case: only one homonym already registered.
+ $res = XDB::query('SELECT uid, expire
+ FROM email_source_account
+ WHERE email = {?} AND type != \'alias_aux\'',
+ $emailXorg);
+ // * second case: at least two homonyms registerd.
+ $result = XDB::query("SELECT hrmid
+ FROM email_source_other
+ WHERE type = 'homonym' AND email = {?}",
+ $emailXorg);
+ if ($res->numRows() || $result->numRows()) {
+ if ($res->numRows()) {
+ list($h_id, $expire) = $res->fetchOneRow();
+ if (empty($expire)) {
+ XDB::execute('UPDATE email_source_account
+ SET expire = ADDDATE(NOW(), INTERVAL 1 MONTH)
+ WHERE email = {?} AND type != \'alias_aux\'',
+ $emailXorg);
+ $hrmid = User::makeHomonymHrmid($emailXorg);
+ XDB::execute('INSERT IGNORE INTO homonyms_list (hrmid, uid)
+ VALUES ({?}, {?}), ({?}, {?})',
+ $hrmid, $h_id, $hrmid, $subState->i('uid'));
+ $als = XDB::fetchColumn('SELECT email
+ FROM email_source_account
+ WHERE uid = {?} AND type != \'alias_aux\' AND expire IS NULL',
+ $h_id);
+
+ $homonym = User::getSilentWithUID($h_id);
+ $mailer = new PlMailer('register/lostalias.mail.tpl');
+ $mailer->addTo($homonym);
+ $mailer->setSubject("Perte de ton alias $emailXorg dans un mois !");
+ $mailer->assign('emailXorg', $emailXorg);
+ $mailer->assign('als', join(', ', $als));
+ $mailer->SetTxtBody(wordwrap($msg,72));
+ $mailer->send();
+ }
+ } else {
+ $hrmid = $result->fetchOneCell();
+ XDB::execute('INSERT IGNORE INTO homonyms_list (hrmid, uid)
+ VALUES ({?}, {?})',
+ $hrmid, $subState->i('uid'));
+ // TODO: insert into source_other if new domain