Xnet accounts activation.
authorStéphane Jacob <sj@m4x.org>
Thu, 17 Mar 2011 15:53:24 +0000 (16:53 +0100)
committerStéphane Jacob <sj@m4x.org>
Thu, 17 Mar 2011 15:53:24 +0000 (16:53 +0100)
Signed-off-by: Stéphane Jacob <sj@m4x.org>
htdocs/javascript/xorg.js
modules/xnet.php
templates/platal/password.tpl
templates/xnet/account.mail.tpl
templates/xnet/register.success.tpl [new file with mode: 0644]

index 4837da9..b262759 100644 (file)
@@ -590,7 +590,7 @@ function hashResponse(password1, password2, hasConfirmation) {
         return false;
     }
 
-    alert("Le mot de passe que tu as rentré va être chiffré avant de nous parvenir par Internet ! Ainsi il ne circulera pas en clair.");
+    alert("Le mot de passe va être chiffré avant de nous parvenir par Internet ! Ainsi il ne circulera pas en clair.");
     $('[name=' + password1 + ']').val('');
     $('[name=pwhash]').val(hash_encrypt(pw1));
     return true;
index 627824c..607b30c 100644 (file)
@@ -34,6 +34,7 @@ class XnetModule extends PLModule
             'photo'       => $this->make_hook('photo',     AUTH_MDP),
             'autologin'   => $this->make_hook('autologin', AUTH_MDP),
             'login/ext'   => $this->make_hook('login_ext', AUTH_PUBLIC),
+            'register/ext' => $this->make_hook('register_ext', AUTH_PUBLIC),
             'edit'        => $this->make_hook('edit',      AUTH_MDP, 'user'),
 
             'Xnet'        => $this->make_wiki_hook(),
@@ -235,6 +236,37 @@ class XnetModule extends PLModule
         }
     }
 
+    function handler_register_ext($page, $hash = null)
+    {
+        XDB::execute('DELETE FROM  register_pending_xnet
+                            WHERE  DATE_SUB(NOW(), INTERVAL 1 MONTH) > date');
+        $res = XDB::fetchOneAssoc('SELECT  uid, hruid
+                                     FROM  register_pending_xnet
+                                    WHERE  hash = {?}',
+                                  $hash);
+
+        if (is_null($hash) || is_null($res)) {
+            $page->trigErrorRedirect('Cette adresse n\'existe pas ou n\'existe plus sur le serveur.', '');
+        }
+
+        if (Post::has('pwhash') && Post::t('pwhash')) {
+            XDB::query('UPDATE  accounts
+                           SET  password = {?}, state = \'active\'
+                         WHERE  uid = {?} AND state = \'pending\' AND type = \'xnet\'',
+                       Post::t('pwhash'), $res['uid']);
+            XDB::query('DELETE FROM  register_pending_xnet
+                              WHERE  uid = {?}',
+                       $res['uid']);
+
+            S::logger($res['uid'])->log('passwd', '');
+            $page->changeTpl('xnet/register.success.tpl');
+            $page->assign('hruid', $res['hruid']);
+        } else {
+            $page->changeTpl('platal/password.tpl');
+            $page->assign('xnet', true);
+        }
+    }
+
     function handler_edit(&$page)
     {
         global $globals;
index d84d193..a0632cd 100644 (file)
 
 
 <h1>
-  Changer de mot de passe
+  {if t($xnet)}Création du mot de passe{else}Changer de mot de passe{/if}
 </h1>
 
 <p>
-  Ton mot de passe doit faire au moins <strong>6 caractères</strong> et comporter deux types de
+  Le mot de passe doit faire au moins <strong>6 caractères</strong> et comporter deux types de
   caractères parmi les suivants&nbsp;: lettres minuscules, lettres majuscules, chiffres, caractères spéciaux.
   Attention au type de clavier que tu utilises (qwerty&nbsp;?) et aux majuscules/minuscules.
 </p>
 <p>
-  Pour une sécurité optimale, ton mot de passe circule de manière chiffrée (https) et est
+  Pour une sécurité optimale, le mot de passe circule de manière chiffrée (https) et est
   stocké chiffré irréversiblement sur nos serveurs.
 </p>
 <br />
 <fieldset style="width: 70%; margin-left: 15%">
-  <legend>{icon name=lock} Saisie du nouveau mot de passe</legend>
+  <legend>{icon name=lock} Saisie du {if !t($xnet)}nouveau {/if}mot de passe</legend>
   <form action="{$smarty.server.REQUEST_URI}" method="post">
   {xsrf_token_field}
     <table style="width: 100%">
@@ -50,7 +50,7 @@
       </tr>
       <tr>
         <td class="titre">
-          Retape-le une fois&nbsp;:
+          Confirmation&nbsp;:
         </td>
         <td>
           <input type="password" size="10" maxlength="256" name="new2" />
       <tr>
         <td colspan="2" class="center">
           <input type="hidden" name="pwhash" value="" />
-          <input type="submit" value="Changer" name="submitn" onclick="return hashResponse('new1', 'new2', true);" />
+          <input type="submit" value="{if t($xnet)}Créer{else}Changer{/if}" name="submitn" onclick="return hashResponse('new1', 'new2', true);" />
         </td>
       </tr>
     </table>
   </form>
 </fieldset>
 
+{if !t($xnet)}
 <p>
   Note bien qu'il s'agit là du mot de passe te permettant de t'authentifier sur le site {#globals.core.sitename#}&nbsp;;
   le mot de passe te permettant d'utiliser le serveur <a
@@ -82,5 +83,6 @@
   de {#globals.core.sitename#} (si tu as <a href="./password/smtp">activé l'accès SMTP et NNTP</a>)
   est indépendant de celui-ci et tu peux le modifier <a href="./password/smtp">ici</a>.
 </p>
+{/if}
 
 {* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}
index 5dc56d3..cdea70d 100644 (file)
@@ -38,7 +38,7 @@ mot de passe : celui que vous choisirez
 
 Vous pouvez, dès à présent et pendant une période d'un mois, activer votre compte en cliquant sur le lien suivant :
 
-http://www.polytechnique.net/register/{$hash}
+http://www.polytechnique.net/register/ext/{$hash}
 
 Si le lien ne fonctionne pas, copiez intégralement ce lien dans la barre d'adresse de votre navigateur.
 
diff --git a/templates/xnet/register.success.tpl b/templates/xnet/register.success.tpl
new file mode 100644 (file)
index 0000000..f545dbf
--- /dev/null
@@ -0,0 +1,36 @@
+{**************************************************************************}
+{*                                                                        *}
+{*  Copyright (C) 2003-2011 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               *}
+{*                                                                        *}
+{**************************************************************************}
+
+<h1>Activation du compte et création du mot de passe</h1>
+
+<p>
+<strong>Mot de passe enregistré le {$smarty.now|date_format}</strong>
+</p>
+<p>
+  Votre compte est maintenant activé et votre passe créé. Vous pouvez donc
+  profiter dès à présent des multiples fonctionnalités de Polytechnique.net.
+</p>
+<p>
+  Pour rappel, votre identifiant est&nbsp;: <strong>{$hruid}</strong>
+</p>
+
+{* vim:set et sw=2 sts=2 sws=2 enc=utf-8: *}