Valider 72b287a1 rédigé par Fil's avatar Fil
Parcourir les fichiers

Pas mal de nettoyage dans les tags #LOGIN_PRIVE et #LOGIN_PUBLIC

Une des raisons de la lenteur caractérisant la version précédente était que toute
la pahse de login se faisait en recalcul (il fallait utiliser des variables var_machin
pour bénéficier du cache)...

A priori c'est quasi-bon maintenant. Testeurs, svp ?

(Le formulaire de login est laid, je sais... mais il est tard)
parent a70d7fe7
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -119,7 +119,7 @@ function auth() {
	// Si pas authentifie, demander login / mdp
	if (!$auth_login) {
		$url = urlencode($GLOBALS['REQUEST_URI']);
		@header("Location: ../spip_login.php3?url=$url");
		@header("Location: ../spip_login.php3?var_url=$url");
		exit;
	}

+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -1466,7 +1466,7 @@ function debut_page($titre = "", $rubrique = "asuivre", $sous_rubrique = "asuivr

	if ($auth_can_disconnect) {
		echo "<td width='5'>&nbsp;</td>";
		icone_bandeau_secondaire ("Se d&eacute;connecter", "../spip_cookie.php3?logout=$connect_login", "deconnecter-24.gif", "", $sous_rubrique, "deconnect");
		icone_bandeau_secondaire ("Se d&eacute;connecter", "../spip_cookie.php3?logout=$connect_login&url=spip_login.php3", "deconnecter-24.gif", "", $sous_rubrique, "deconnect");
	}

	echo "</tr></table>";
+4 −4
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -1598,9 +1598,9 @@ function calculer_champ($id_champ, $id_boucle, $nom_var)
	case 'LOGIN_PRIVE':
		$milieu = '
			$'.$nom_var.' = "<"."?php include_local (\'inc-login.php3\');
				if (\$GLOBALS[\'url\']) \$cible = new Link(\$GLOBALS[\'url\']);
				if (\$GLOBALS[\'var_url\']) \$cible = new Link(\$GLOBALS[\'var_url\']);
				else \$cible = new Link(\'ecrire/\');
				login (\$cible, \$GLOBALS[\'clean_link\']->getUrl(), \'prive\'); ?".">";
				login (\$cible, \'prive\'); ?".">";
			';
		break;

@@ -1609,7 +1609,7 @@ function calculer_champ($id_champ, $id_boucle, $nom_var)
		if ($fonctions) {
			$filtres = array();
			while (list(, $nom) = each($fonctions)) {
				if (ereg("cible=(.*)", $nom, $regs))
				if (ereg("url=(.*)", $nom, $regs))
					$lacible = "new Link('".$regs[1]."')";
				else
					$filtres[] = $nom;
@@ -1619,7 +1619,7 @@ function calculer_champ($id_champ, $id_boucle, $nom_var)
		$milieu = '
			$'.$nom_var.' = "<"."?php include_local (\'inc-login.php3\');
				\$cible = ' . $lacible . ';
				login (\$cible, \$GLOBALS[\'clean_link\']->getUrl(), false); ?".">";
				login (\$cible, false); ?".">";
			';
		break;

+43 −42
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -14,33 +14,48 @@ include_ecrire ("inc_texte.php3");


// gerer l'auth http
function auth_http($cible, $redirect_echec, $essai_auth_http) {
function auth_http($cible, $essai_auth_http) {
	if ($essai_auth_http == 'oui') {
		include_ecrire('inc_session.php3');
		if (!verifier_php_auth()) {
			ask_php_auth("<b>Connexion refus&eacute;e.</b><p>(Login ou mot de passe incorrect.)<p>[<a href='./'>Retour au site public</a>] [<a href='spip_cookie.php3?essai_auth_http=oui'>Nouvelle tentative</a>] [<a href='ecrire/'>espace priv&eacute</a>]");
		} else {
			$cible->addVar('bonjour','oui');
			@header("Location: " . $cible->getUrl() );
			$url = urlencode($cible->getUrl());
			$page_erreur = "<b>Connexion refus&eacute;e.</b><p>(Login ou mot de passe incorrect.)<p>[<a href='./'>Retour au site public</a>] [<a href='./spip_cookie.php3?essai_auth_http=oui&url=$url'>Nouvelle tentative</a>]";
			if (ereg("ecrire", $url))
				$page_erreur .= " [<a href='ecrire/'>espace priv&eacute</a>]";
			ask_php_auth($page_erreur);
		}
		else
			@header("Location: " . $cible->getUrl() );
		exit;
	}
	// si demande logout auth_http
	else if ($essai_auth_http == 'logout') {
		include_ecrire('inc_session.php3');
		ask_php_auth("<b>D&eacute;connexion effectu&eacute;e.</b><p>(V&eacute;rifiez toutefois que votre navigateur n'a pas m&eacute;moris&eacute; votre mot de passe...)<p>[<a href='./'>Retour au site public</a>] [<a href='spip_cookie.php3?essai_auth_http=oui&redirect=ecrire'>test navigateur/reconnexion</a>] [<a href='ecrire/'>espace priv&eacute</a>]");
		ask_php_auth("<b>D&eacute;connexion effectu&eacute;e.</b><p>(V&eacute;rifiez toutefois que votre navigateur n'a pas m&eacute;moris&eacute; votre mot de passe...)<p>[<a href='./'>Retour au site public</a>] [<a href='./spip_cookie.php3?essai_auth_http=oui&redirect=ecrire'>test navigateur/reconnexion</a>] [<a href='ecrire/'>espace priv&eacute</a>]");
		exit;
	}
}

function login($cible, $redirect_echec, $prive = 'prive') {
	global $login;
function ouvre_login($titre) {
	$retour .= debut_cadre_enfonce();
	if ($titre) $retour .= gros_titre($titre);
	return $retour;
}

function ferme_login() {
	return fin_cadre_enfonce();
}

function login($cible, $prive = 'prive') {
	$login = $GLOBALS['var_login'];
	$erreur = $GLOBALS['var_erreur'];
	$echec_cookie = $GLOBALS['var_echec_cookie'];
	$essai_auth_http = $GLOBALS['var_essai_auth_http'];
	$logout = $GLOBALS['var_logout'];
	global $spip_admin;
	global $erreur, $echec_cookie;
	global $php_module;
	global $this_link;
	global $essai_auth_http;
	global $logout, $auteur_session;
	global $clean_link;
	global $auteur_session;
	global $spip_session, $PHP_AUTH_USER;

	include_ecrire("inc_session.php3");
@@ -53,7 +68,7 @@ function login($cible, $redirect_echec, $prive = 'prive') {
	$nom_site = lire_meta('nom_site');
	if (!$nom_site) $nom_site = 'Mon site SPIP';
	$url_site = lire_meta('adresse_site');
	if (!$url_site) $url_site = './index.php3';
	if (!$url_site) $url_site = "./";
	if ($erreur=='pass') $erreur = "Erreur de mot de passe.";

	// Le login est memorise dans le cookie d'admin eventuel
@@ -81,43 +96,31 @@ function login($cible, $redirect_echec, $prive = 'prive') {
	if ($login)
		$js_focus = 'document.form_login.session_password.focus();';
	else
		$js_focus = 'document.form_login.login.focus();';
		$js_focus = 'document.form_login.var_login.focus();';

	if ($echec_cookie == "oui") {
		install_debut_html("$nom_site : probl&egrave;me de cookie");
		echo ouvre_login ("$nom_site : probl&egrave;me de cookie");
		echo "<p><b>Pour vous identifier de fa&ccedil;on s&ucirc;re sur ce site, vous devez accepter les cookies.</b> ";
		echo "Veuillez r&eacute;gler votre navigateur pour qu'il les accepte (au moins pour ce site).\n";
	}
	else if ($prive) {
		install_debut_html("$nom_site : acc&egrave;s &agrave; l'espace priv&eacute;");
		echo ouvre_login ("$nom_site : acc&egrave;s &agrave; l'espace priv&eacute;");
		echo "<p>Pour acc&eacute;der &agrave; l'espace priv&eacute; de ce site, ";
		echo "vous devez entrer les codes d'identification qui vous ont &eacute;t&eacute; ";
		echo "fournis lors de votre inscription.";
	} else {
		install_debut_html("$nom_site : identification");
		echo ouvre_login ("$nom_site : identification");
		echo "<p>Pour vous identifier sur ce site, ";
		echo "vous devez entrer les codes qui vous ont &eacute;t&eacute; ";
		echo "fournis lors de votre inscription.";
	}

	// fond d'ecran de login
	$images = array ('login.gif', 'login.jpg', 'login.png');
	while (list(,$img) = each ($images)) {
		$img = 'IMG/icones/'.$img;
		if (file_exists($img)) {
			echo "<style type=\"text/css\"><!--\n" .
				"body {background-image: url(\"$img\"); background-repeat: no-repeat; background-position: top left;}\n" .
				"--></style>\n";
			break;
		}
	}

	echo "<p>&nbsp;<p>";

	if ($login) {
		// affiche formulaire de login en incluant le javascript MD5
		echo "<script type=\"text/javascript\" src=\"ecrire/md5.js\"></script>";
		echo "<form name='form_login' action='spip_cookie.php3' method='post'";
		echo "<form name='form_login' action='./spip_cookie.php3' method='post'";
		echo " onSubmit='if (this.session_password.value) {
				this.session_password_md5.value = calcMD5(\"$alea_actuel\" + this.session_password.value);
				this.next_session_password_md5.value = calcMD5(\"$alea_futur\" + this.session_password.value);
@@ -133,16 +136,12 @@ function login($cible, $redirect_echec, $prive = 'prive') {
		debut_cadre_enfonce($icone);
		if ($erreur) echo "<font color=red><b>$erreur</b></font><p>";

		if (file_exists("IMG/auton$id_auteur.gif")) $logo = "IMG/auton$id_auteur.gif";
		else if (file_exists("IMG/auton$id_auteur.jpg")) $logo = "IMG/auton$id_auteur.jpg";
		else if (file_exists("IMG/auton$id_auteur.png")) $logo = "IMG/auton$id_auteur.png";

		echo "<table cellpadding=0 cellspacing=0 border=0 width=100%>";
		echo "<tr width=100%>";
		echo "<td width=100%>";
		// si jaja actif, on affiche le login en 'dur', et on le passe en champ hidden
		echo "<script type=\"text/javascript\"><!--\n" .
			"document.write('Login : <b>$login</b> <br><font size=\\'2\\'>[<a href=\\'spip_cookie.php3?cookie_admin=non&url=".rawurlencode("spip_login.php3")."\\'>se connecter sous un autre identifiant</a>]</font>');\n" .
			"document.write('Login : <b>$login</b> <br><font size=\\'2\\'>[<a href=\\'spip_cookie.php3?cookie_admin=non&url=".rawurlencode($clean_link->getUrl())."\\'>se connecter sous un autre identifiant</a>]</font>');\n" .
			"//--></script>\n";
		echo "<input type='hidden' name='session_login_hidden' value='$login'>";

@@ -152,7 +151,7 @@ function login($cible, $redirect_echec, $prive = 'prive') {
		echo "Attention, ce formulaire n'est pas s&eacute;curis&eacute;. ";
		echo "Si vous ne voulez pas que votre mot de passe puisse &ecirc;tre ";
		echo "intercept&eacute; sur le r&eacute;seau, veuillez activer Javascript ";
		echo "dans votre navigateur et <a href=\"".$this_link->getUrl()."\">recharger cette page</a>.<p></font>\n";
		echo "dans votre navigateur et <a href=\"".$clean_link->getUrl()."\">recharger cette page</a>.<p></font>\n";
		echo "<label><b>Login (identifiant de connexion au site)&nbsp;:</b><br></label>";
		echo "<input type='text' name='session_login' class='formo' value=\"$login\" size='40'></noscript>\n";

@@ -178,15 +177,17 @@ function login($cible, $redirect_echec, $prive = 'prive') {

	}

	else {
		// demander seulement le login
		echo "<form name='form_login' action='$redirect_echec' method='get'>\n";
	else { // demander seulement le login

		$url = $cible->getUrl();
		$action = $clean_link->getUrl();

		echo "<form name='form_login' action='$action' method='post'>\n";
		debut_cadre_enfonce("redacteurs-24.gif");
		if ($erreur) echo "<font color=red><b>$erreur</b></font><p>";
		echo "<label><b>Login (identifiant de connexion au site)</b><br></label>";
		echo "<input type='text' name='login' class='formo' value=\"\" size='40'><p>\n";
		echo "<input type='text' name='var_login' class='formo' value=\"\" size='40'><p>\n";

		$url = $cible->getUrl();
		echo "<input type='hidden' name='url' value='$url'>\n";
		echo "<div align='right'><input type='submit' class='fondl' name='submit' value='Valider'></div>\n";
		fin_cadre_enfonce();
@@ -212,7 +213,7 @@ function login($cible, $redirect_echec, $prive = 'prive') {
	echo "<p><font size='2' face='Verdana, Arial, Helvetica, sans-serif'>";
	echo "[<a href='$url_site'>retour au site public</a>]</font>";

	install_fin_html();
	echo ferme_login();

}

+13 −13
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
<?php
	if (!$url)
		$cible = new Link('ecrire/');
	else
		$cible = new Link(urldecode($url));
<html>
<head>
<title>
Acc&egrave;s &agrve; l'espace priv&eacute;
</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="spip_style.css" type="text/css" />
</head>
<body bgcolor="#ffffff" text="#000000" link="#e86519" vlink="#6e003a" alink="#ff9900" topmargin="0" leftmargin="0" marginwidth="0" marginheight="0">

	// que faire si on est connecte
	if ($auteur_session) {
		@Header("Location: ".$cible->getUrl());
		echo "Vous &ecirc;tes connect&eacute;...";
		exit;
	}
?>
<center><table><tr><td width=400>
#LOGIN_PRIVE
</td></tr></table></center>

</body>
</html>
Chargement en cours