Valider 435d3cd6 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

introduction d'un pipeline affiche_formulaire_login permettant aux methodes...

introduction d'un pipeline affiche_formulaire_login permettant aux methodes d'auth d'ajouter au formulaire ce qui leur est necessaire
corrolairement, le js qui sert a encrypter le pass en md5 passe dans auth/spip car il est propre a cette methode.

+correction d'un bug sur la fonction de synchronisation lorsqu'elle est appelee sans argument : la definition de valeurs par defaut n'est pas prise en compte par func_get_args qui renvoie uniquement les arguments explicitements fournis
parent c67dce76
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+25 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -50,6 +50,31 @@ function auth_spip_dist ($login, $pass, $md5pass="", $md5next="") {
	return $row;
}

function auth_spip_formulaire_login($flux){
	// javascript qui gere la securite du login en evitant de faire circuler le pass en clair
	$flux['data'].=
		'<script type="text/javascript" src="'._DIR_JAVASCRIPT.'md5.js"></script>'
		.'<script type="text/javascript" src="'._DIR_JAVASCRIPT.'login.js"></script>'
		.'<script type="text/javascript">/*<![CDATA[*/'
		."var alea_actuel='".$flux['args']['_alea_actuel']."';"
		."var alea_futur='".$flux['args']['_alea_futur']."';"
		."var login='".$flux['args']['var_login']."';"
		."var page_auteur = '".generer_url_public('informer_auteur')."';"
		."var informe_auteur_en_cours = false;"
		."var attente_informe = 0;"
		."(function($){
		$('#password')
			.after(\"<em id='pass_securise'><img src='"._DIR_IMG_PACK."securise.gif' width='16' height='16' alt='<:login_securise:>' title='<:login_securise:>' \/><\/em>\");
		affiche_login_secure();
		$('#var_login').change(actualise_auteur);
		$('form#formulaire_login').submit(login_submit);
	}(jQuery));"
		."/*]]>*/</script>";

	return $flux;
}


/**
 * Informer du droit de modifier ou non son login
 * @return bool
+15 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -318,6 +318,20 @@ function auth_administrer($fonction,$args,$defaut=false){
 * API Authentification, gestion des identites centralisees
 */

/**
 * Pipeline pour inserer du contenu dans le formulaire de login
 *
 * @param array $flux
 * @return array
 */
function auth_formulaire_login($flux){
	foreach ($GLOBALS['liste_des_authentifications'] as $methode)
		$flux = auth_administrer('formulaire_login',array($methode,$flux),$flux);
	return $flux;
}



/**
 * Retrouver le login interne lie a une info login saisie
 * la saisie peut correspondre a un login delegue
@@ -496,7 +510,7 @@ function auth_modifier_pass($auth_methode, $login, $new_pass, $id_auteur){
function auth_synchroniser_distant($auth_methode=true, $id_auteur=0, $champs=array()){
	$args = func_get_args();
	if ($auth_methode===true){
		$args[] = array('all'=>true); // ajouter une option all=>true pour chaque auth
		$args = array(true, 0, array(), array('all'=>true)); // ajouter une option all=>true pour chaque auth
		foreach ($GLOBALS['liste_des_authentifications'] as $methode) {
			array_shift($args);
			array_unshift($args,$methode);
+1 −0
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -257,6 +257,7 @@ $spip_pipeline = array(
	'affiche_milieu' => '',
	'affiche_enfants' => '',
	'affiche_hierarchie' => '',
	'affiche_formulaire_login' => '|auth_formulaire_login',
	'base_admin_repair' => '',
	'boite_infos' => 'f_boite_infos',
	'ajouter_boutons' => '',
+0 −20
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -55,23 +55,3 @@
	</form>
	]
</div>
[(#REM) javascript qui gere la securite du login en evitant de faire circuler le pass en clair]
<script type="text/javascript" src="#EVAL{_DIR_JAVASCRIPT}md5.js"></script>
<script type="text/javascript" src="#EVAL{_DIR_JAVASCRIPT}login.js"></script>
<script type='text/javascript'>/*<!#EVAL{chr(91)}CDATA#EVAL{chr(91)}*/
	var alea_actuel='#ENV{_alea_actuel}';
	var alea_futur='#ENV{_alea_futur}';
	var login='#ENV{var_login,''}';
	var page_auteur = '#URL_PAGE{informer_auteur}';
	var informe_auteur_en_cours = false;
	var attente_informe = 0;
	
	(function($){
		$('#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>");
		affiche_login_secure();
		$('#var_login').change(actualise_auteur);
		$('form#formulaire_login').submit(login_submit);
	}(jQuery));
	
/*#EVAL{chr(93)}[(#EVAL{chr(93)})]>*/</script>
+2 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -46,7 +46,8 @@ function formulaires_login_charger_dist($cible="",$login="",$prive=null)
		'_logo' => $row['logo'],
		'_alea_actuel' => isset($row['alea_actuel'])?$row['alea_actuel']:'',
		'_alea_futur' => isset($row['alea_futur'])?$row['alea_futur']:'',
		'_hidden' => '<input type="hidden" name="session_password_md5" value="" /><input type="hidden" name="next_session_password_md5" value="" />'
		'_hidden' => '<input type="hidden" name="session_password_md5" value="" /><input type="hidden" name="next_session_password_md5" value="" />',
		'_pipeline' => 'affiche_formulaire_login', // faire passer le formulaire dans un pipe dedie pour les methodes auth
		);

	if ($erreur OR !$GLOBALS['visiteur_session']['id_auteur'])