informer_auteur_fonctions.php 1.83 KB
Newer Older
chris's avatar
chris committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
<?php

/***************************************************************************\
 *  SPIP, Systeme de publication pour l'internet                           *
 *                                                                         *
 *  Copyright (c) 2001-2012                                                *
 *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
 *                                                                         *
 *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
 *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
\***************************************************************************/

if (!defined('_ECRIRE_INC_VERSION')) return;

// Filtre ad hoc pour le formulaire de login:
// le parametre var_login n'est pas dans le contexte pour optimiser le cache
// il faut aller le chercher a la main
function informer_auteur($bof)
{
	include_spip('inc/json');
	include_spip('formulaires/login');
	include_spip('inc/auth');
	$login = strval(_request('var_login'));
	$row = auth_informer_login($login);
	if ($row AND is_array($row))
		unset($row['id_auteur']);
	else {
		// permettre d'autoriser l'envoi de password non crypte lorsque
		// l'auteur n'est pas (encore) declare dans SPIP, par exemple pour les cas
		// de premiere authentification via SPIP a une autre application.
		if (defined('_AUTORISER_AUTH_FAIBLE') and _AUTORISER_AUTH_FAIBLE) {
			$row = array();
		}
		// piocher les infos sur un autre login
		elseif ($n = sql_countsel('spip_auteurs',"login<>''")){
			$n = (abs(crc32($login))%$n);
			$row = auth_informer_login(sql_getfetsel('login','spip_auteurs',"login<>''",'','',"$n,1"));
			if ($row AND is_array($row)){
				unset($row['id_auteur']);
				$row['login'] = $login;
			}
		}
		else  $row = array();
	}

	return json_export($row);
}

?>