Skip to content
Extraits de code Groupes Projets
Valider feb2c851 rédigé par Fil's avatar Fil
Parcourir les fichiers

petits ajustements sur le login ; essayer notamment de refuser le js, ou les...

petits ajustements sur le login ; essayer notamment de refuser le js, ou les cookies, ou de taper un login inconnu
parent 461670fe
Branches
Étiquettes
Aucune requête de fusion associée trouvée
...@@ -6,6 +6,12 @@ ...@@ -6,6 +6,12 @@
[<p class="formulaire_message">(#ENV**{_deja_loge})</p>] [<p class="formulaire_message">(#ENV**{_deja_loge})</p>]
[<p class="formulaire_message">(#ENV**{message_ok})</p>] [<p class="formulaire_message">(#ENV**{message_ok})</p>]
[<p class='formulaire_erreur'>(#ENV**{message_erreur})</p>] [<p class='formulaire_erreur'>(#ENV**{message_erreur})</p>]
[(#ENV{echec_cookie})<fieldset class='formulaire_erreur'>
<h2><:avis_erreur_cookie:></h2>
<p><:login_cookie_oblige:><br /><:login_cookie_accepte:></p>
</fieldset>]
[(#ENV{editable}) [(#ENV{editable})
<form id='formulaire_login' method='post' action='#ENV{action}' enctype='multipart/form-data'> <form id='formulaire_login' method='post' action='#ENV{action}' enctype='multipart/form-data'>
[(#REM) declarer les hidden qui declencheront le service du formulaire [(#REM) declarer les hidden qui declencheront le service du formulaire
...@@ -22,13 +28,11 @@ ...@@ -22,13 +28,11 @@
<li class="editer_password obligatoire"> <li class="editer_password obligatoire">
<label for="password"><:login_pass2:></label> <label for="password"><:login_pass2:></label>
<input class='password' type='password' name='password' id='password' value="" size='40' /> <input class='password' type='password' name='password' id='password' value="" size='40' />
<em id='pass_securise'[(#ENV{_alea_actuel}|?{'',' '})style='display:none;']><img src='#EVAL{_DIR_IMG_PACK}securise.gif' width='16' height='16' alt='<:login_securise:>' /></em>
[<span class='erreur'>(#ENV**{erreurs}|table_valeur{password})</span>] [<span class='erreur'>(#ENV**{erreurs}|table_valeur{password})</span>]
<span class='details'>&#91;<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>&#93;</span> <span class='details'>&#91;<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>&#93;</span>
</li> </li>
[(#ENV{rester_connecte}) [(#ENV{rester_connecte})
<li><input class='checkbox' type="checkbox" name="session_remember" id="session_remember" value="oui" [(#ENV**{cnx}|?{' '})checked="checked"] <li><input class='checkbox' type="checkbox" name="session_remember" id="session_remember" value="oui" [(#ENV**{cnx}|?{' '})checked="checked"] onchange="jQuery(this).addClass('modifie');" />
class="intact" onchange="this.className='';" />
<label class='nofx' for="session_remember"><:login_rester_identifie:></label></li> <label class='nofx' for="session_remember"><:login_rester_identifie:></label></li>
] ]
</ol> </ol>
...@@ -58,20 +62,19 @@ var alea_futur='#ENV{_alea_futur,''}'; ...@@ -58,20 +62,19 @@ var alea_futur='#ENV{_alea_futur,''}';
var login='#ENV{var_login,''}'; var login='#ENV{var_login,''}';
var informe_auteur_en_cours = false; var informe_auteur_en_cours = false;
function informe_auteur(c){ function informe_auteur(c){
informe_auteur_en_cours = false;
eval('c = '+c); // JSON eval('c = '+c); // JSON
if (c) { if (c) {
alea_actuel = c.alea_actuel; alea_actuel = c.alea_actuel;
alea_futur = c.alea_futur; alea_futur = c.alea_futur;
jQuery('input#session_login_hidden').attr('value',c.login);
// indiquer le cnx si on n'y a pas touche // indiquer le cnx si on n'y a pas touche
jQuery('input#session_remember.intact') jQuery('input#session_remember:not(.modifie)')
.attr('checked',c.cnx=='1'?'checked':''); .attr('checked',(c.cnx=='1')?'checked':'');
jQuery('#spip_logo_auteur').html(c.logo); jQuery('#spip_logo_auteur').html(c.logo);
jQuery('#pass_securise').show();
} else { } else {
jQuery('#spip_logo_auteur').html(''); jQuery('#spip_logo_auteur').html('');
alea_actuel = '';
} }
informe_auteur_en_cours = false;
} }
function calcule_md5_pass(pass){ function calcule_md5_pass(pass){
if (alea_actuel) { if (alea_actuel) {
...@@ -81,41 +84,40 @@ function calcule_md5_pass(pass){ ...@@ -81,41 +84,40 @@ function calcule_md5_pass(pass){
} }
} }
function actualise_auteur(){ function actualise_auteur(){
if (login!=jQuery('#var_login').attr('value')) { if (login != jQuery('#var_login').attr('value')) {
login = jQuery('#var_login').attr('value');
informe_auteur_en_cours = true; informe_auteur_en_cours = true;
login = jQuery('#var_login').attr('value');
$.get('#URL_ACTION{informer_auteur}',{var_login:login},informe_auteur); $.get('#URL_ACTION{informer_auteur}',{var_login:login},informe_auteur);
} }
} }
jQuery('#var_login').change(function(){actualise_auteur();}); jQuery('#password').after("<em id='pass_securise'><img src='#EVAL{_DIR_IMG_PACK}securise.gif' width='16' height='16' alt='<:login_securise:>' title='<:login_securise:>' \/><\/em>");
jQuery('#var_login').change(actualise_auteur);
jQuery('form#formulaire_login').submit(function(){ jQuery('form#formulaire_login').submit(function(){
actualise_auteur();
pass = jQuery('input[@name=password]').attr('value'); pass = jQuery('input[@name=password]').attr('value');
// ne jamais laisser le pass circuler en clair // ne jamais laisser le pass circuler en clair
if (pass) { if (pass) {
if (alea_actuel) // si l'information est en cours, retenter sa chance
// on a l'alea, on peut lancer le submit apres avoir hashe le pass if (informe_auteur_en_cours) {
calcule_md5_pass(pass);
else {
// on a pas encore l'alea de l'auteur
// retrouver les alea de l'auteur qui ne sont pas encore arrives (remplissage auto des champs par le navigateur) !
// si l'information est en cours, retenter sa chance
if (informe_auteur_en_cours) {
setTimeout(function(){jQuery('form#formulaire_login').submit();},300);
return false;
}
// sinon lancer une demande
informe_auteur_en_cours = true;
$.get('#URL_ACTION{informer_auteur}',{var_login:jQuery('#var_login').attr('value')},function(c) {
informe_auteur(c);
// le formulaire sera soumis apres reception des info auteur
jQuery('form#formulaire_login').submit();
});
// ou dans un delai maxi de 5s (pour eviter le blocage a cette etape)
setTimeout(function(){ setTimeout(function(){
jQuery('form#formulaire_login').submit(); jQuery('form#formulaire_login').submit();
},5000); }, 1000);
return false;
}
// Si on a l'alea, on peut lancer le submit apres avoir hashe le pass
if (alea_actuel) {
calcule_md5_pass(pass);
}
// sinon c'est que l'auteur n'existe pas
else {
var alert = jQuery("<div class='formulaire_erreur'>"
+ (<:login_identifiant_inconnu|_q:>.replace(/@login@/, login))
+ "<\/div>")
.appendTo(jQuery("#var_login").parent());
setTimeout(function() {alert.slideUp();}, 3000);
return false; return false;
} }
} }
......
...@@ -38,19 +38,19 @@ function formulaires_login_charger_dist($cible="",$login="",$prive=null){ ...@@ -38,19 +38,19 @@ function formulaires_login_charger_dist($cible="",$login="",$prive=null){
// Ne pas proposer de "rester connecte quelques jours" // Ne pas proposer de "rester connecte quelques jours"
// si la duree de l'alea est inferieure a 12 h (valeur par defaut) // si la duree de l'alea est inferieure a 12 h (valeur par defaut)
$rester_connecte = (_RENOUVELLE_ALEA < 12*3600) ? '' : ' '; $rester_connecte = (_RENOUVELLE_ALEA < 12*3600) ? '' : ' ';
$valeurs = array( $valeurs = array(
#'auth_http' => $auth_http, #'auth_http' => $auth_http,
'var_login' => $login, 'var_login' => $login,
'rester_connecte' => $rester_connecte, 'rester_connecte' => $rester_connecte,
'_logo' => isset($auteur['logo'])?$auteur['logo']:'', '_logo' => isset($auteur['logo'])?$auteur['logo']:'',
'cnx' => isset($auteur['cnx'])?$auteur['cnx']:'', 'cnx' => isset($auteur['cnx'])?$auteur['cnx']:'',
'_alea_actuel' => isset($auteur['alea_actuel'])?$auteur['alea_actuel']:'', '_alea_actuel' => isset($auteur['alea_actuel'])?$auteur['alea_actuel']:'',
'_alea_futur' => isset($auteur['alea_futur'])?$auteur['alea_futur']:'', '_alea_futur' => isset($auteur['alea_futur'])?$auteur['alea_futur']:'',
); );
$valeurs['_hidden'] = $valeurs['_hidden'] =
'<input type="hidden" name="session_password_md5" value="" />' '<input type="hidden" name="session_password_md5" value="" />'
. '<input type="hidden" name="next_session_password_md5" value="" />' . '<input type="hidden" name="next_session_password_md5" value="" />';
. '<input type="hidden" name="session_login_hidden" id="session_login_hidden" value="" />';
// Si on est connecte, envoyer vers la destination // Si on est connecte, envoyer vers la destination
// si on en a le droit, et sauf si on y est deja // si on en a le droit, et sauf si on y est deja
...@@ -79,6 +79,14 @@ function formulaires_login_charger_dist($cible="",$login="",$prive=null){ ...@@ -79,6 +79,14 @@ function formulaires_login_charger_dist($cible="",$login="",$prive=null){
} }
} }
// en cas d'echec de cookie, inc_auth a renvoye vers le script de
// pose de cookie ; s'il n'est pas la, c'est echec cookie
// s'il est la, c'est probablement un bookmark sur bonjour=oui,
// et pas un echec cookie.
if (_request('var_erreur') == 'cookie')
$valeurs['echec_cookie'] = ' ';
return array($editable,$valeurs); return array($editable,$valeurs);
} }
...@@ -93,26 +101,8 @@ function formulaires_login_verifier_dist($cible="",$login="",$prive=null){ ...@@ -93,26 +101,8 @@ function formulaires_login_verifier_dist($cible="",$login="",$prive=null){
$session_password = _request('password'); $session_password = _request('password');
$session_md5pass = _request('session_password_md5'); $session_md5pass = _request('session_password_md5');
$session_md5next = _request('next_session_password_md5'); $session_md5next = _request('next_session_password_md5');
$session_remember = _request('session_remember');
// en cas d'echec de cookie, inc_auth a renvoye vers le script de
// pose de cookie ; s'il n'est pas la, c'est echec cookie
// s'il est la, c'est probablement un bookmark sur bonjour=oui,
// et pas un echec cookie.
/*if (_request('var_echec_cookie'))
$echec_cookie = ($_COOKIE['spip_session'] != 'test_echec_cookie');
else $echec_cookie = '';*/
if ($echec_cookie){
$erreurs['message_erreur'] = "echec cookie ";
/*
[(#ENV{echec_cookie})
<fieldset class="reponse_formulaire">
<legend><:avis_erreur_cookie:></legend>
<p><:login_cookie_oblige:></p>
<p><:login_cookie_accepte:></p>
</fieldset>]*/
}
#$pose_cookie = generer_url_action('cookie',"",false,true); #$pose_cookie = generer_url_action('cookie',"",false,true);
$auth_http = ''; $auth_http = '';
if ($echec_cookie AND !$ignore_auth_http) { if ($echec_cookie AND !$ignore_auth_http) {
...@@ -151,7 +141,8 @@ function formulaires_login_verifier_dist($cible="",$login="",$prive=null){ ...@@ -151,7 +141,8 @@ function formulaires_login_verifier_dist($cible="",$login="",$prive=null){
unset($row['lang']); unset($row['lang']);
} }
$identifier_login = charger_fonction('identifier_login','inc'); $identifier_login = charger_fonction('identifier_login','inc');
if (!$identifier_login($session_login,$session_password,$session_md5pass,$session_md5next)){ if (!$identifier_login($session_login, $session_password,
$session_md5pass, $session_md5next, $session_remember)){
$erreurs['password'] = _T('login_erreur_pass'); $erreurs['password'] = _T('login_erreur_pass');
} }
else { else {
...@@ -200,6 +191,12 @@ function formulaires_login_traiter_dist($cible="",$login="",$prive=null){ ...@@ -200,6 +191,12 @@ function formulaires_login_traiter_dist($cible="",$login="",$prive=null){
else $cible = generer_url_ecrire(); else $cible = generer_url_ecrire();
}*/ }*/
// Si on est admin, poser le cookie de correspondance
if ($GLOBALS['auteur_session']['statut'] == '0minirezo') {
include_spip('inc/cookie');
spip_setcookie('spip_admin', '@'.$GLOBALS['auteur_session']['login'],
time() + 7 * 24 * 3600);
}
// Si on est connecte, envoyer vers la destination // Si on est connecte, envoyer vers la destination
if ($cible if ($cible
......
...@@ -97,7 +97,7 @@ function informer_login($login){ ...@@ -97,7 +97,7 @@ function informer_login($login){
} }
unset($row['source']); unset($row['source']);
$prefs = unserialize($row['prefs']); $prefs = unserialize($row['prefs']);
$row['cnx'] = $prefs['cnx'] == 'perma' ? '1' : '0'; $row['cnx'] = ($prefs['cnx'] == 'perma') ? '1' : '0';
unset($row['prefs']); unset($row['prefs']);
$page = evaluer_fond('formulaires/logo_auteur', array('id_auteur'=>$row['id_auteur'])); $page = evaluer_fond('formulaires/logo_auteur', array('id_auteur'=>$row['id_auteur']));
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter