X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fvalidations%2Fbroken.inc.php;h=80317a72ed7896c5af6867ac08d95f225932a005;hb=787bb3d745141f2f85bd947ad7dd775d2c63f908;hp=951a8b7f0d7e38c34d2264cfcdacb533e4c0130a;hpb=0d693e2f641e885a87670fddd91ed6725560d79c;p=platal.git diff --git a/include/validations/broken.inc.php b/include/validations/broken.inc.php index 951a8b7..80317a7 100644 --- a/include/validations/broken.inc.php +++ b/include/validations/broken.inc.php @@ -24,26 +24,28 @@ class BrokenReq extends Validate { // {{{ properties - var $m_forlife; - var $m_bestalias; - var $m_prenom; - var $m_nom; - var $m_promo; - var $m_sexe; - var $m_email; - var $old_email; - var $m_comment; - - var $rules = "Accepter si l'adresse mail parait correcte, et pas absurde (ou si le marketeur est de confiance). + public $m_forlife; + public $m_bestalias; + public $m_prenom; + public $m_nom; + public $m_promo; + public $m_sexe; + public $m_email; + public $old_email; + public $m_comment; + + private $m_reactive = false; + + public $rules = "Accepter si l'adresse mail parait correcte, et pas absurde (ou si le marketeur est de confiance). Si le demandeur marque sa propre adresse mail, refuser dans tous les cas. - Si l'adresse proposée est surveillée, refuser. - Si le compte associé est désactivé, étudier le cas en fonction de la raison de la désactivation"; + Si l'adresse proposée est surveillée, refuser. + Si le compte associé est désactivé, étudier le cas en fonction de la raison de la désactivation"; // }}} // {{{ constructor - function BrokenReq($sender, $user, $email, $comment = null) + public function __construct($sender, $user, $email, $comment = null) { - $this->Validate($sender, false, 'broken'); + parent::__construct($sender, false, 'broken'); $this->m_email = $email; $this->m_comment = trim($comment); $this->m_forlife = $user['forlife']; @@ -58,44 +60,72 @@ class BrokenReq extends Validate // }}} // {{{ function formu() - function formu() + public function formu() { return 'include/form.valid.broken.tpl'; } // }}} // {{{ function _mail_subj - - function _mail_subj() + + protected function _mail_subj() { - return "[Polytechnique.org] Récupération de {$this->m_prenom} {$this->m_nom} ({$this->m_promo})"; + return "[Polytechnique.org] Récupération de {$this->m_prenom} {$this->m_nom} ({$this->m_promo})"; } // }}} // {{{ function _mail_body - function _mail_body($isok) + protected function _mail_body($isok) { - if ($isok) { - return " Un mail de contact vient d'être envoyé " - ." à {$this->m_prenom} {$this->m_nom} ({$this->m_promo}) pour confirmer sa volonté de" - ." mettre à jour sa redirection Polytechnique.org!\n\n" + if ($isok && !$this->m_reactive) { + return " Un mail de contact vient d'être envoyé" + ." à {$this->m_prenom} {$this->m_nom} ({$this->m_promo}) pour confirmer sa volonté de" + ." mettre à jour sa redirection Polytechnique.org !\n\n" + ."Merci de ta participation !\n"; + } elseif ($isok) { + return " L'adresse de redirection {$this->m_email} de {$this->m_prenom} {$this->m_nom} ({$this->m_promo}) " + ."vient d'être réactivée. Un mail lui a été envoyé pour l'en informer.\n\n" ."Merci de ta participation !\n"; } else { - return " Nous n'avons pas jugé bon d'envoyer de mail de contact à {$this->m_prenom} {$this->m_nom} ({$this->m_promo})."; + return " Nous n'utiliserons pas cette adresse pour contacter {$this->m_prenom} {$this->m_nom} ({$this->m_promo})."; } } // }}} // {{{ function commit() - function commit() + public function commit() { global $globals; $email = $this->m_bestalias . '@' . $globals->mail->domain; + + XDB::execute("UPDATE emails AS e + INNER JOIN aliases AS a ON (a.id = e.uid) + SET e.flags = 'active' + WHERE a.alias = {?} AND e.email = {?}", $this->m_forlife, $this->m_email); + if (XDB::affectedRows() > 0) { + $this->m_reactive = true; + $mailer = new PlMailer(); + $mailer->setFrom('"Association Polytechnique.org" mail->domain . '>'); + $mailer->addTo($email); + $mailer->setSubject("Mise à jour de ton adresse $email"); + $mailer->setTxtBody(wordwrap("Cher Camarade,\n\n" + . "Ton adresse $email étant en panne et ayant été informés que ta redirection {$this->m_email}, jusqu'à présent inactive, " + . "est fonctionnelle, nous venons de réactiver cette adresse.\n\n" + . "N'hésite pas à aller gérer toi-même tes redirections en te rendant à la page :\n" + . "https://www.polytechnique.org/emails/redirect\n" + . "Si tu as perdu ton mot de passe d'accès au site, tu peux également effectuer la procédure de récupération à l'adresse :\n" + . "https://www.polytechnique.org/recovery\n" + . "-- \nTrès Cordialement,\nL'Equipe de Polytechnique.org\n")); + $mailer->send(); + return true; + } + + $email = $this->m_bestalias . '@' . $globals->mail->domain; if ($this->old_email) { $subject = "Ton adresse $email semble ne plus fonctionner"; - $reason = "Nous avons été informés que ton adresse $email ne fonctionne plus correctement par un camarade"; + $reason = "Nous avons été informés que ton adresse $email ne fonctionne plus correctement par un camarade"; } else { $res = XDB::iterRow("SELECT email FROM emails AS e @@ -106,25 +136,25 @@ class BrokenReq extends Validate list(, $redirect[]) = explode('@', $red); } $subject = "Ton adresse $email ne fonctionne plus"; - $reason = "Ton adresse $email ne fonctionne plus "; + $reason = "Ton adresse $email ne fonctionne plus"; if (!count($redirect)) { $reason .= '.'; } elseif (count($redirect) == 1) { $reason .= ' car sa redirection vers ' . $redirect[0] . ' est hors-service depuis plusiers mois.'; } else { - $reason .= ' cas ses redirections vers ' . implode(', ', $redirect) + $reason .= ' car ses redirections vers ' . implode(', ', $redirect) . ' sont hors-services depuis plusieurs mois.'; } } - $body = ($this->m_sexe ? 'Chère ' : 'Cher ') . $this->m_prenom . ",\n\n" + $body = ($this->m_sexe ? 'Chère ' : 'Cher ') . $this->m_prenom . ",\n\n" . $reason . "\n\n" - . "L'adresse {$this->m_email} nous a été communiquée, veux-tu que cette adresse devienne ta nouvelle " - . "adresse devienne ta nouvelle adresse de redirection ? Si oui, envoie nous des informations qui " - . "nous permettrons de nous assurer de ton identité (par exemple ta date de naissance et ta promotion)\n" - . "-- \nTrès Cordialement,\nL'Equipe de Polytechnique.org\n"; + . "L'adresse {$this->m_email} nous a été communiquée, veux-tu que cette adresse devienne ta nouvelle " + . "adresse de redirection ? Si oui, envoie nous des informations qui " + . "nous permettront de nous assurer de ton identité (par exemple ta date de naissance et ta promotion)\n" + . "-- \nTrès Cordialement,\nL'Equipe de Polytechnique.org\n"; $body = wordwrap($body, 78); $mailer = new PlMailer(); - $mailer->setFrom('"Association Polytechnique.org" '); + $mailer->setFrom('"Association Polytechnique.org" mail->domain . '>'); $mailer->addTo($this->m_email); $mailer->setSubject($subject); $mailer->setTxtBody($body); @@ -134,5 +164,5 @@ class BrokenReq extends Validate // }}} } -// vim:set et sw=4 sts=4 sws=4 foldmethod=marker: +// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8: ?>