X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=modules%2Fadmin%2Fhomonyms.inc.php;h=2f99303cbb627415c31abe5508f21ff109ff6110;hb=e22ff176d83e1f4ffd866e6ad928ee247906c6a5;hp=d7bae79fa228707162c4bf2fff20d97917b608f1;hpb=d1e6167749fdad08c81e23d09e1bbbf76e3b989b;p=platal.git diff --git a/modules/admin/homonyms.inc.php b/modules/admin/homonyms.inc.php index d7bae79..2f99303 100644 --- a/modules/admin/homonyms.inc.php +++ b/modules/admin/homonyms.inc.php @@ -1,6 +1,6 @@ id()); } -function send_warning_homonyme(PlUser &$user, $loginbis) { - global $globals; - $cc = "support+homonyme@" . $globals->mail->domain; - $FROM = "\"Support Polytechnique.org\" <$cc>"; +function send_warning_homonym(PlUser $user, $email) +{ + $cc = "validation+homonyme@" . Platal::globals()->mail->domain; + $from = "\"Support Polytechnique.org\" <$cc>"; + $body = Post::has('mailbody') ? Post::t('mailbody') : get_warning_mail_text($user, $email); + $mymail = new PlMailer(); - $mymail->setFrom($FROM); + $mymail->setFrom($from); $mymail->addCc($cc); - $mymail->setSubject("Dans 2 semaines, suppression de $loginbis@" . $globals->mail->domain); - $mymail->setTxtBody(Env::v('mailbody')); + $mymail->setSubject("Dans 1 semaine, suppression de $email@" . $user->mainEmailDomain()); + $mymail->setTxtBody($body); $mymail->sendTo($user); } -function send_robot_homonyme(PlUser &$user, $loginbis) { - global $globals; - $cc = "support+homonyme@" . $globals->mail->domain; - $FROM = "\"Support Polytechnique.org\" <$cc>"; +function send_robot_homonym(PlUser $user, $email) +{ + $cc = "validation+homonyme@" . Platal::globals()->mail->domain; + $from = "\"Support Polytechnique.org\" <$cc>"; + $body = Post::has('mailbody') ? Post::t('mailbody') : get_robot_mail_text($user, $email); + $user = User::getSilentWithUID($user->id()); + $mymail = new PlMailer(); - $mymail->setFrom($FROM); - $mymail->setSubject("Mise en place du robot $loginbis@" . $globals->mail->domain); + $mymail->setFrom($from); + $mymail->setSubject("Mise en place du robot $email@" . $user->mainEmailDomain()); $mymail->addCc($cc); - $mymail->setTxtBody(Env::v('mailbody')); + $mymail->setTxtBody($body); $mymail->sendTo($user); } -function switch_bestalias(PlUser &$user, $loginbis) { - // check if loginbis was the bestalias - $bestailas = XDB::fetchOneCell("SELECT alias - FROM aliases - WHERE id = {?} AND FIND_IN_SET('bestalias', flags)", - $user->id()); - if ($bestalias && $bestalias != $loginbis) { - return false; - } +function get_warning_mail_text(PlUser $user, $email) +{ + $display_name = $user->displayName(); + $former_email = $email . '@' . $user->mainEmailDomain(); + $forlife_email = $user->forlifeEmail(); + + return "$display_name,\n\nComme nous t'en avons informé par email il y a " + . "quelques temps, pour respecter nos engagements en terme d'adresses " + . "email devinables, tu te verras bientôt retirer l'alias $former_email " + . "pour ne garder que $forlife_email.\n\nToute personne qui écrira à " + . "$former_email recevra la réponse d'un robot qui l'informera que " + . "$former_email est ambigu pour des raisons d'homonymie et signalera " + . "ton email exact.\n\nCordialement,\n-- \nl'équipe de Polytechnique.org" + . "\nLe portail des élèves & anciens élèves de l'École polytechnique"; +} + +function get_robot_mail_text(PlUser $user, $email) +{ + $display_name = $user->displayName(); + $former_email = $email . '@' . $user->mainEmailDomain(); + + return "$display_name,\n\nComme nous t'en avons informé par email il y a " + . "quelques temps, nous t'avons retiré de façon définitive l'adresse " + . "$former_email.\n\nToute personne qui écrit à $former_email reçoit " + . "la réponse d'un robot qui l'informe que $former_email est ambigu " + . "pour des raisons d'homonymie et indique ton email exact.\n\nTu peux " + . "faire l'essai toi-même en écrivant à $former_email.\n\nCordialement," + . "\n-- \nl'équipe de Polytechnique.org" + . "\nLe portail des élèves & anciens élèves de l'École polytechnique"; +} + +function fix_homonym(PlUser $user, $email) +{ + XDB::execute('DELETE FROM email_source_account + WHERE email = {?} AND type = \'alias\'', + $email); + + $hrmid = User::makeHomonymHrmid($email); + XDB::execute('INSERT INTO email_source_other (hrmid, email, domain, type, expire) + SELECT {?}, {?}, id, \'homonym\', NOW() + FROM email_virtual_domains + WHERE name = {?}', + $hrmid, $email, $user->mainEmailDomain()); + XDB::execute("INSERT INTO email_redirect_other (hrmid, redirect, type, action) + VALUES ({?}, '', 'homonym', 'homonym')", + $hrmid); + - // select the shortest alias still alive - $newbest = XDB::fetchOneCell("SELECT alias - FROM aliases - WHERE id = {?} AND alias != {?} AND expire IS NULL - ORDER BY LENGTH(alias) - LIMIT 1", $user->id(), $loginbis); - // change the bestalias flag - XDB::execute("UPDATE aliases - SET flags = (flags & (255 - 1)) | IF(alias = {?}, 1, 0) - WHERE id = {?}", $newbest, $user->id()); - return $newbest; + require_once 'emails.inc.php'; + fix_bestalias($user); } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: