recovery.php => platal.php
authorx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sun, 9 Jul 2006 21:25:21 +0000 (21:25 +0000)
committerx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sun, 9 Jul 2006 21:25:21 +0000 (21:25 +0000)
git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@408 839d8a87-29fc-0310-9880-83ba4fa771e5

bin/emails.broken.php
htdocs/recovery.php [deleted file]
modules/platal.php
templates/password_prompt.tpl
templates/password_prompt_logged.tpl

index cf58df1..e5a7021 100755 (executable)
@@ -70,7 +70,7 @@ d'une panne temporaire.  Si tu souhaites changer la liste des adresses sur
 lesquelles tu reçois le courrier qui t'es envoyé à ton adresse
 polytechnicienne, il te suffit de te rendre sur la page :
 
-    {$globals->baseurl}/emails/redirect.php
+    {$globals->baseurl}/emails/redirect
 
 
   A bientôt sur Polytechnique.org !
@@ -81,7 +81,7 @@ polytechnicienne, il te suffit de te rendre sur la page :
   PS : si jamais tu ne disposes plus du mot de passe te permettant
 d'accéder au site, rends toi sur la page
 
-    {$globals->baseurl}/recovery.php
+    {$globals->baseurl}/recovery
 
 elle te permettra de créer un nouveau mot de passe après avoir rentré ton
 login ({$x['alias']}) et ta date de naissance !";
diff --git a/htdocs/recovery.php b/htdocs/recovery.php
deleted file mode 100644 (file)
index 8045fd2..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-/***************************************************************************
- *  Copyright (C) 2003-2006 Polytechnique.org                              *
- *  http://opensource.polytechnique.org/                                   *
- *                                                                         *
- *  This program is free software; you can redistribute it and/or modify   *
- *  it under the terms of the GNU General Public License as published by   *
- *  the Free Software Foundation; either version 2 of the License, or      *
- *  (at your option) any later version.                                    *
- *                                                                         *
- *  This program is distributed in the hope that it will be useful,        *
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of         *
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          *
- *  GNU General Public License for more details.                           *
- *                                                                         *
- *  You should have received a copy of the GNU General Public License      *
- *  along with this program; if not, write to the Free Software            *
- *  Foundation, Inc.,                                                      *
- *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
- ***************************************************************************/
-
-require_once('xorg.inc.php');
-new_skinned_page('recovery.tpl', AUTH_PUBLIC);
-
-if (Env::has('login') and Env::has('birth'))  {
-    if (!ereg('[0-3][0-9][0-1][0-9][1][9]([0-9]{2})', Env::get('birth'))) {
-        $page->trig_run('Date de naissance incorrecte ou incohérente');
-    }
-    $birth   = sprintf('%s-%s-%s', substr(Env::get('birth'),4,4), substr(Env::get('birth'),2,2), substr(Env::get('birth'),0,2));
-
-    $mailorg = strtok(Env::get('login'), '@');
-
-    // paragraphe rajouté : si la date de naissance dans la base n'existe pas, on l'update
-    // avec celle fournie ici en espérant que c'est la bonne
-
-    $res = $globals->xdb->query(
-            "SELECT  user_id, naissance
-               FROM  auth_user_md5 AS u
-         INNER JOIN  aliases       AS a ON (u.user_id=a.id AND type!='homonyme')
-              WHERE  a.alias={?} AND u.perms IN ('admin','user') AND u.deces=0", $mailorg);
-    list($uid, $naissance) = $res->fetchOneRow();
-
-    if ($naissance == $birth) {
-        $page->assign('ok', true);
-
-        $url   = rand_url_id(); 
-        $globals->xdb->execute('INSERT INTO perte_pass (certificat,uid,created) VALUES ({?},{?},NOW())', $url, $uid);
-        $res   = $globals->xdb->query('SELECT email FROM emails WHERE uid = {?} AND NOT FIND_IN_SET("filter", flags)', $uid);
-        $mails = implode(', ', $res->fetchColumn());
-        
-       require_once("diogenes/diogenes.hermes.inc.php");
-       $mymail = new HermesMailer();
-       $mymail->setFrom('"Gestion des mots de passe" <support+password@polytechnique.org>');
-       $mymail->addTo($mails);
-       $mymail->setSubject('Ton certificat d\'authentification');
-        $mymail->setTxtBody("Visite la page suivante qui expire dans six heures :
-{$globals->baseurl}/tmpPWD/$url
-
-Si en cliquant dessus tu n'y arrives pas, copie intégralement l'adresse dans la barre de ton navigateur.
-
---
-Polytechnique.org
-\"Le portail des élèves & anciens élèves de l'Ecole polytechnique\"".(Post::get('email') ? "
-
-Adresse de secours : \n    ".Post::get('email') : "")."
-
-Mail envoyé à ".Env::get('login'));
-        $mymail->send();
-
-        // on cree un objet logger et on log l'evenement
-       $logger = $_SESSION['log'] = new DiogenesCoreLogger($uid);
-       $logger->log('recovery', $emails);
-    } else {
-        $page->trig('Pas de résultat correspondant aux champs entrés dans notre base de données.');
-    }
-}
-
-$page->run();
-?>
index 930e6db..fe02ded 100644 (file)
@@ -33,6 +33,7 @@ class PlatalModule extends PLModule
             'password'      => $this->make_hook('password',  AUTH_MDP),
             'tmpPWD'        => $this->make_hook('tmpPWD',    AUTH_PUBLIC),
             'password/smtp' => $this->make_hook('smtppass',  AUTH_MDP),
+            'recovery'      => $this->make_hook('recovery',  AUTH_PUBLIC),
 
             // happenings related thingies
             'rss'         => $this->make_hook('rss',       AUTH_PUBLIC),
@@ -165,6 +166,71 @@ class PlatalModule extends PLModule
         return PL_OK;
     }
 
+    function handler_recovery(&$page)
+    {
+        global $globals;
+
+        $page->changeTpl('recovery.tpl');
+
+        if (!Env::has('login') || !Env::has('birth')) {
+            return PL_OK;
+        }
+
+        if (!ereg('[0-3][0-9][0-1][0-9][1][9]([0-9]{2})', Env::get('birth'))) {
+            $page->trig_run('Date de naissance incorrecte ou incohérente');
+        }
+        $birth   = sprintf('%s-%s-%s', substr(Env::get('birth'),4,4), substr(Env::get('birth'),2,2), substr(Env::get('birth'),0,2));
+
+        $mailorg = strtok(Env::get('login'), '@');
+
+        // paragraphe rajouté : si la date de naissance dans la base n'existe pas, on l'update
+        // avec celle fournie ici en espérant que c'est la bonne
+
+        $res = $globals->xdb->query(
+                "SELECT  user_id, naissance
+                   FROM  auth_user_md5 AS u
+             INNER JOIN  aliases       AS a ON (u.user_id=a.id AND type!='homonyme')
+                  WHERE  a.alias={?} AND u.perms IN ('admin','user') AND u.deces=0", $mailorg);
+        list($uid, $naissance) = $res->fetchOneRow();
+
+        if ($naissance == $birth) {
+            $page->assign('ok', true);
+
+            $url   = rand_url_id(); 
+            $globals->xdb->execute('INSERT INTO perte_pass (certificat,uid,created) VALUES ({?},{?},NOW())', $url, $uid);
+            $res   = $globals->xdb->query('SELECT email FROM emails WHERE uid = {?} AND NOT FIND_IN_SET("filter", flags)', $uid);
+            $mails = implode(', ', $res->fetchColumn());
+
+            require_once "diogenes/diogenes.hermes.inc.php";
+            $mymail = new HermesMailer();
+            $mymail->setFrom('"Gestion des mots de passe" <support+password@polytechnique.org>');
+            $mymail->addTo($mails);
+            $mymail->setSubject('Ton certificat d\'authentification');
+            $mymail->setTxtBody("Visite la page suivante qui expire dans six heures :
+{$globals->baseurl}/tmpPWD/$url
+
+Si en cliquant dessus tu n'y arrives pas, copie intégralement l'adresse dans la barre de ton navigateur.
+
+-- 
+Polytechnique.org
+\"Le portail des élèves & anciens élèves de l'Ecole polytechnique\"".(Post::get('email') ? "
+
+Adresse de secours :
+    ".Post::get('email') : "")."
+
+Mail envoyé à ".Env::get('login'));
+            $mymail->send();
+
+            // on cree un objet logger et on log l'evenement
+            $logger = $_SESSION['log'] = new DiogenesCoreLogger($uid);
+            $logger->log('recovery', $emails);
+        } else {
+            $page->trig('Pas de résultat correspondant aux champs entrés dans notre base de données.');
+        }
+
+        return PL_OK;
+    }
+
     function handler_tmpPWD(&$page, $certif = null)
     {
         global $globals;
index cfff53b..5ba099f 100644 (file)
@@ -101,7 +101,7 @@ Si tu n'es pas {insert name="getName"}, change le login ci-dessous, ou rends-toi
       <table width="100%"><tr>
       <td>
         <img src="{rel}/images/pi.png" alt=" [ ? ] " />
-        <a href="{rel}/recovery.php">mot de passe perdu ?</a>
+        <a href="{rel}/recovery">mot de passe perdu ?</a>
       </td>
       <td class="right">
         <input type="submit" name="submitbtn" value="Envoyer" />
index d1971f2..4c7e821 100644 (file)
@@ -59,7 +59,7 @@
     <tr>
       <td>
         <img src="{rel}/images/pi.png" alt=" [ ? ] " />
-        <a href="{rel}/recovery.php">Mot de passe perdu ?</a>
+        <a href="{rel}/recovery">Mot de passe perdu ?</a>
       </td>
       <td class="right">
         <input  type="submit" name="submitbtn" value="Envoyer" />