X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;f=include%2Fvalidations%2Fbroken.inc.php;h=8dc35f7431d3748c6f8cc95fc0b4a963a4a4cf46;hb=2553b7686e0678b8e27858a7c377e73ecb410aec;hp=5cbbdfa076aeaf8230c30f642cbd877446c0bb14;hpb=a7de4ef724d1a3b0bf978a50ce7cc9d23412c7a0;p=platal.git diff --git a/include/validations/broken.inc.php b/include/validations/broken.inc.php index 5cbbdfa..8dc35f7 100644 --- a/include/validations/broken.inc.php +++ b/include/validations/broken.inc.php @@ -1,6 +1,6 @@ Validate($sender, false, 'broken'); - $this->m_email = $email; + parent::__construct($sender, false, 'broken'); + $this->m_user = &$user; $this->m_comment = trim($comment); - $this->m_forlife = $user['forlife']; - $this->m_bestalias = $user['bestalias']; - $this->m_prenom = $user['prenom']; - $this->m_nom = $user['nom']; - $this->m_promo = $user['promo']; - $this->m_sexe = $user['sexe']; - $this->old_email = $user['email']; + $this->m_email = $email; } // }}} // {{{ 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_user->fullName()} ({$this->m_user->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 email de contact vient d'être envoyé à {$this->m_user->fullName()}" + . " ({$this->m_user->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_user->fullName()} ({$this->m_user->promo()}) " + ."vient d'être réactivée. Un email 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_user->fullName()} ({$this->m_user->promo()})."; } } // }}} // {{{ function commit() - function commit() + public function commit() { global $globals; - $email = $this->m_bestalias . '@' . $globals->mail->domain; - if ($this->old_email) { + $email = $this->m_user->bestEmail(); + + XDB::execute("UPDATE emails + SET flags = 'active', panne_level = 2 + WHERE uid = {?} AND email = {?}", $this->m_user->id(), $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\n" + . "-- \nTrès Cordialement,\nL'Équipe de Polytechnique.org\n")); + $mailer->send(); + return true; + } + + if ($this->m_user->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"; } else { - $res = XDB::iterRow("SELECT email - FROM emails AS e - INNER JOIN aliases AS a ON (a.id = e.uid) - WHERE a.alias = {?} AND e.flags = 'panne'", $this->m_forlife); + $res = XDB::iterRow("SELECT email FROM emails WHERE uid = {?} AND flags = 'panne'", $this->m_user->id()); $redirect = array(); while (list($red) = $res->next()) { 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.'; + $reason .= ' car sa redirection vers ' . $redirect[0] . ' est hors-service depuis plusieurs 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_user->isFemale() ? 'Chère ' : 'Cher ') . $this->m_user->displayName() . ",\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"; + . "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\n" + . "-- \nTrès Cordialement,\nL'Équipe 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);