<?php
/***************************************************************************
- * Copyright (C) 2003-2007 Polytechnique.org *
+ * Copyright (C) 2003-2008 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
{
// {{{ 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).
- Si le demandeur marque sa propre adresse mail, refuser dans tous les cas.
+ 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 email parait correcte, et pas absurde (ou si le marketeur est de confiance).
+ Si le demandeur marque sa propre adresse email, 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 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'];
// }}}
// {{{ 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})";
}
// }}}
// {{{ function _mail_body
- function _mail_body($isok)
+ protected function _mail_body($isok)
{
- if ($isok) {
- return " Un mail de contact vient d'être envoyé "
+ if ($isok && !$this->m_reactive) {
+ return " Un email 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"
+ ." 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 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_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', panne_level = 2
+ 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" <register@' . $globals->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;
+ }
+
+ $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";
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"
. $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" <register@polytechnique.org>');
+ $mailer->setFrom('"Association Polytechnique.org" <register@' . $globals->mail->domain . '>');
$mailer->addTo($this->m_email);
$mailer->setSubject($subject);
$mailer->setTxtBody($body);