From 9f36b83a4d178da96d2eee1d3eb63301f88e1289 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Tue, 12 Feb 2008 15:54:52 +0000 Subject: [PATCH] l'action de de demander son mot de passe doit etre attachee au formulaire de login et non a la page de login. Cela oblige sinon a forker le formulaire des que l'on veut l'utiliser la page de resaisie d'un mot de passe passe en squelette, avec creation de la balise #FORMULAIRE_OUBLI utilisable independamment et un hack qui de ce fait disparait dans generer_url_public --- .gitattributes | 1 + dist/formulaires/login.html | 4 +- dist/formulaires/oubli.html | 8 +--- dist/login.html | 1 - dist/spip_pass.html | 40 +++++++++++++++++++ .../pass.php => balise/formulaire_oubli.php} | 32 ++++++--------- ecrire/inc/utils.php | 6 --- 7 files changed, 58 insertions(+), 34 deletions(-) create mode 100644 dist/spip_pass.html rename ecrire/{action/pass.php => balise/formulaire_oubli.php} (83%) diff --git a/.gitattributes b/.gitattributes index 0fa05d3edb..6dfe355508 100644 --- a/.gitattributes +++ b/.gitattributes @@ -292,6 +292,7 @@ dist/puce_prive_rtl.gif -text dist/puce_rtl.gif -text dist/rechercher.png -text dist/spip.png -text +dist/spip_pass.html -text dist/spip_style.css -text dist/style_prive.html -text dist/style_prive_defaut.css -text diff --git a/dist/formulaires/login.html b/dist/formulaires/login.html index a62969ff3a..3682a7b48f 100644 --- a/dist/formulaires/login.html +++ b/dist/formulaires/login.html @@ -56,7 +56,9 @@ if (l=document.getElementById('login_securise')) l.style.display=''; ] [(#ENV{login}|?{'',' '})<div id='pass_ajax' style='display: none;'>] <p><label[ for="var_login_(#ENV{login})"]><:login_pass2:></label><br /> - <input type="password" class="forml" name="session_password"[ id="var_login_(#ENV{login})"] value="" size="20" /></p> + <input type="password" class="forml" name="session_password"[ id="var_login_(#ENV{login})"] value="" size="20" /><br /> + [<a href="#URL_PAGE{spip_pass}" target="spip_pass" onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=330'); return false;"><:login_motpasseoublie:></a>] + </p> [(#ENV{rester_connecte}) <p><input type="checkbox" name="session_remember" id="session_remember[_(#ENV{login})]" value="oui"[(#ENV*{prefs}|filtre_rester_connecte)checked="checked"] diff --git a/dist/formulaires/oubli.html b/dist/formulaires/oubli.html index 8541c50e13..8ee48299af 100644 --- a/dist/formulaires/oubli.html +++ b/dist/formulaires/oubli.html @@ -4,6 +4,7 @@ (#ENV*{message}|?{'',' '}) <form id="oubli_form" action="[(#ENV{action})]" method="post"> + [(#ENV{action}|form_hidden)] <fieldset> <legend><:pass_nouveau_pass:></legend>[ <input type="hidden" name="p" value="(#ENV{p})" /> @@ -21,17 +22,10 @@ ] </div> -<div align="#LANG_RIGHT"> <script type="text/javascript"><!-- [ (#ENV*{message}|?{'',' '}) document.getElementById('oubli').focus() ] -document.write("<a style='color: #e86519' href='") -document.write((window.opener) ? "javascript:close()" : "./") -document.write("'><:pass_quitter_fenetre:><" + "/a>"); //--></script> -<noscript> - [<a href='./'><:pass_retour_public:></a>] -</noscript> </div> \ No newline at end of file diff --git a/dist/login.html b/dist/login.html index be67f0b3ed..0fdba6c684 100644 --- a/dist/login.html +++ b/dist/login.html @@ -54,7 +54,6 @@ #LOGIN_PRIVE <p class="retour"> [[<a href="#URL_PAGE{identifiants,focus=nom_inscription}&mode=(#URL_SITE_SPIP|tester_config{1comite})" target="spip_pass" onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=400'); return false;"><:login_sinscrire:></a>]] - [<a href="#URL_PAGE{spip_pass}" target="spip_pass" onclick="javascript:window.open(this.href, 'spip_pass', 'scrollbars=yes, resizable=yes, width=480, height=330'); return false;"><:login_motpasseoublie:></a>] [<a href="#URL_SITE_SPIP/"><:login_retoursitepublic:></a>] </p> </div> diff --git a/dist/spip_pass.html b/dist/spip_pass.html new file mode 100644 index 0000000000..ce2c8ec09a --- /dev/null +++ b/dist/spip_pass.html @@ -0,0 +1,40 @@ +[(#REM) + Eviter les boutons d'admin sur la page d'oubli +] +#HTTP_HEADER{Content-Type: text/html; charset=#CHARSET} +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="#LANG" lang="#LANG" dir="#LANG_DIR"> +<head> +<title><:pass_mot_oublie:> - [(#NOM_SITE_SPIP|textebrut)]</title> +<meta http-equiv="Content-Type" content="text/html; charset=#CHARSET" /> +<meta name="robots" content="none" /> +<meta name="generator" content="SPIP[ (#SPIP_VERSION)]" /> +[<link rel="shortcut icon" href="(#CHEMIN{favicon.ico})" />] +<link rel="stylesheet" href="[(#CHEMIN{spip_style.css}|direction_css)]" type="text/css" /> +<link rel="stylesheet" href="[(#CHEMIN{minipres.css}|direction_css)]" type="text/css" /> + +</head> +<body class='pass' > + +<div id='minipres'> + + <h3 class="spip">#NOM_SITE_SPIP</h3> + + <div class="formulaire_spip pass"> + #FORMULAIRE_OUBLI + </div> + <div style='text-align:#LANG_RIGHT'> + <script type="text/javascript"><!-- + document.write("<a style='color: #e86519' href='") + document.write((window.opener) ? "javascript:close()" : "./") + document.write("'><:pass_quitter_fenetre:><" + "/a>"); + //--></script> + <noscript> + [<a href='./'><:pass_retour_public:></a>] + </noscript> + </div> + +</div><!--#minipres--> + +</body> +</html> \ No newline at end of file diff --git a/ecrire/action/pass.php b/ecrire/balise/formulaire_oubli.php similarity index 83% rename from ecrire/action/pass.php rename to ecrire/balise/formulaire_oubli.php index 68bd32bea2..e27c5b814c 100644 --- a/ecrire/action/pass.php +++ b/ecrire/balise/formulaire_oubli.php @@ -12,14 +12,8 @@ if (!defined("_ECRIRE_INC_VERSION")) return; -include_spip('inc/minipres'); # charge lang et execute utiliser_lang -include_spip('inc/acces'); # pour generer_htpass -include_spip('public/assembler'); # pour calculer la page include_spip('inc/filtres'); # pour email_valide() -// Ce fichier est celui d'une balise dynamique qui s'ignore. - - // fonction qu'on peut redefinir pour filtrer les adresses mail // http://doc.spip.org/@test_oubli @@ -68,11 +62,19 @@ function message_oubli($email, $param) return _T('pass_erreur_probleme_technique'); } +function balise_FORMULAIRE_OUBLI ($p) { + return calculer_balise_dynamique($p,'FORMULAIRE_OUBLI',array()); +} -// http://doc.spip.org/@formulaire_oubli_dyn -function formulaire_oubli_dyn($p, $oubli) -{ +function balise_FORMULAIRE_OUBLI_stat($args, $filtres) { + return $args; +} + +function balise_FORMULAIRE_OUBLI_dyn() +{ +$p = _request('p'); +$oubli = _request('oubli'); $message = ''; // au 3e appel la variable P est positionnee et oubli = mot passe. @@ -100,15 +102,7 @@ $message = ''; return array('formulaires/oubli', 0, array('p' => $p, 'message' => $message, - 'action' => generer_url_action('pass'))); + 'action' => self())); } -// http://doc.spip.org/@action_pass_dist -function action_pass_dist() -{ - utiliser_langue_visiteur(); - echo install_debut_html(_T('pass_mot_oublie'), " class='pass'"); - inclure_balise_dynamique(formulaire_oubli_dyn(_request('p'), _request('oubli'))); - echo install_fin_html(); -} -?> +?> \ No newline at end of file diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index ec39f58513..3d86013a5a 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -817,12 +817,6 @@ function get_spip_script($default='') { function generer_url_public($script='', $args="", $no_entities=false, $rel=false) { // si le script est une action (spip_pass, spip_inscription), // standardiser vers la nouvelle API - // [hack temporaire pour faire fonctionner #URL_PAGE{spip_pass} ] - - if (preg_match(',^spip_(.*),', $script, $regs)) { - $args = "action=" . $regs[1] .($args ? "&$args" :''); - $script = ""; - } $action = get_spip_script(); if ($script) -- GitLab