Valider 971fcba9 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

Bugfix cookie d'admin (dit cookie de correspondance dans l'interface)

La duree du cookie spip_admin qui sert aux boutons d'admin est definie dans un define, ca evitera deja de poser des durees differentes selon le code ou l'on passe
+ on (re)pose le cookie a chaque fois que la session est renouvelee/cree, ce qui evitera de perdre ce cookie d'admin avant d'etre deconnecte
(un morceau du code est parti avec r23639 qui n'avait rien a voir)

Avec ces modifs on devrait pouvoir supprimer de l'interface le fameux petit bloc "Ajouter/Enlever le cookie de correspondance" qu'a peu pres personne ne comprend ni n'utilise (selon une etude pifometrique)
parent ddb49e72
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
@@ -103,7 +103,7 @@ function action_cookie_dist($set_cookie_admin = null, $change_session = null) {
			} // Ajout de cookie d'admin
			else {
				if ($set_cookie_admin) {
					spip_setcookie('spip_admin', $set_cookie_admin, time() + max(_DUREE_COOKE_ADMIN, _RENOUVELLE_ALEA));
					spip_setcookie('spip_admin', $set_cookie_admin, time() + max(_DUREE_COOKE_ADMIN, 2 * _RENOUVELLE_ALEA));
				}
			}
		}
+0 −9
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -567,15 +567,6 @@ function auth_loger($auteur) {
		'id_auteur=' . intval($auteur['id_auteur'])
	);

	// Si on est admin, poser le cookie de correspondance
	include_spip('inc/cookie');
	if ($auteur['statut'] == '0minirezo') {
		spip_setcookie('spip_admin', '@' . $auteur['login'], time() + 7 * 24 * 3600);
	} // sinon le supprimer ...
	else {
		spip_setcookie('spip_admin', '', 1);
	}

	//  bloquer ici le visiteur qui tente d'abuser de ses droits
	verifier_visiteur();
	return true;
+9 −5
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -204,13 +204,17 @@ function ajouter_session($auteur) {
	// poser le cookie de session SPIP
	include_spip('inc/cookie');
	$duree = definir_duree_cookie_session($auteur);
	spip_setcookie(
		'spip_session',
		$_COOKIE['spip_session'],
		time() + $duree
	);
	spip_setcookie( 'spip_session', $_COOKIE['spip_session'], time() + $duree);
	spip_log("ajoute session $fichier_session cookie $duree", "session");

	// Si on est admin, poser le cookie de correspondance
	if ($auteur['statut'] == '0minirezo') {
		spip_setcookie('spip_admin', '@' . $auteur['login'], time() + max(_DUREE_COOKE_ADMIN, $duree));
	} // sinon le supprimer ...
	else {
		spip_setcookie('spip_admin', '', 1);
	}

	# on en profite pour purger les vieilles sessions anonymes abandonnees
	# supprimer_sessions(0, true, false);

+3 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -2440,6 +2440,9 @@ function spip_initialisation_core($pi = null, $pa = null, $ti = null, $ta = null
	if (!defined('_RENOUVELLE_ALEA')) {
		define('_RENOUVELLE_ALEA', 12 * 3600);
	}
	if (!defined('_DUREE_COOKE_ADMIN')) {
		define('_DUREE_COOKE_ADMIN', 14 * 24 * 3600);
	}

	// charger les meta si possible et renouveller l'alea au besoin
	// charge aussi effacer_meta et ecrire_meta