Amélioration - On peut cliquer sur le texte des checkbox sur le formulaire de recher...
[platal.git] / include / validations / broken.inc.php
index 5cbbdfa..ed0fa5b 100644 (file)
@@ -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";
     // }}}
     // {{{ 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,7 +60,7 @@ class BrokenReq extends Validate
     // }}}
     // {{{ function formu()
 
-    function formu()
+    public function formu()
     {
         return 'include/form.valid.broken.tpl';
     }
@@ -66,7 +68,7 @@ class BrokenReq extends Validate
     // }}}
     // {{{ 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})";
     }
@@ -74,25 +76,53 @@ class BrokenReq extends Validate
     // }}}
     // {{{ function _mail_body
 
-    function _mail_body($isok)
+    protected function _mail_body($isok)
     {
-        if ($isok) {
+        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" <register@polytechnique.org>');
+            $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";