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 {
		// generer de fausses infos, mais credibles, pour eviter une attaque
		// http://core.spip.org/issues/1758

		include_spip('inc/securiser_action');
		$fauxalea1 = md5('fauxalea'.secret_du_site().$login.floor(date('U')/86400));
		$fauxalea2 = md5('fauxalea'.secret_du_site().$login.ceil(date('U')/86400));

		$row = array('login' => $login,
		 'cnx' => 0,
		 'logo' => "",
		 'alea_actuel' => substr_replace($fauxalea1,'.',24,0),
		 'alea_futur' => substr_replace($fauxalea2,'.',24,0)
		);
	}

	return json_export($row);
}
示例#2
0
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();
        } 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);
}
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 {
        if (defined('_AUTORISER_AUTH_FAIBLE') and _AUTORISER_AUTH_FAIBLE) {
            $row = array();
        } else {
            include_spip('inc/securiser_action');
            $fauxalea1 = md5('fauxalea' . secret_du_site() . $login . floor(date('U') / 86400));
            $fauxalea2 = md5('fauxalea' . secret_du_site() . $login . ceil(date('U') / 86400));
            $row = array('login' => $login, 'cnx' => 0, 'logo' => "", 'alea_actuel' => substr_replace($fauxalea1, '.', 24, 0), 'alea_futur' => substr_replace($fauxalea2, '.', 24, 0));
        }
    }
    return json_export($row);
}
示例#4
0
function picker_identifie_id_rapide($ref,$rubriques=0,$articles=0){
	include_spip("inc/json");
	include_spip("inc/lien");
	if (!($match = typer_raccourci($ref)))
		return json_export(false);
	@list($type,,$id,,,,) = $match;
	if (!in_array($type,array($rubriques?'rubrique':'x',$articles?'article':'x')))
		return json_export(false);
	$table_sql = table_objet_sql($type);
	$id_table_objet = id_table_objet($type);
	if (!$titre = sql_getfetsel('titre',$table_sql,"$id_table_objet=".intval($id)))
		return json_export(false);
	$titre = attribut_html(extraire_multi($titre));
	return json_export(array('type'=>$type,'id'=>"$type|$id",'titre'=>$titre));
}
示例#5
0
function picker_identifie_id_rapide($ref, $rubriques_ou_objets = false, $articles = false)
{
    include_spip('inc/json');
    include_spip('inc/lien');
    // On construit un tableau des objets sélectionnables suivant les paramètres
    $objets = array();
    if ($rubriques_ou_objets and is_array($rubriques_ou_objets)) {
        $objets = $rubriques_ou_objets;
    } else {
        if ($rubriques_ou_objets) {
            $objets[] = 'rubriques';
        }
        if ($articles) {
            $objets[] = 'articles';
        }
    }
    // Si la référence ne correspond à rien, c'est fini
    if (!($match = typer_raccourci($ref))) {
        return json_export(false);
    }
    // Sinon on récupère les infos utiles
    @(list($type, , $id, , , , ) = $match);
    // On regarde si le type trouvé fait partie des objets sélectionnables
    if (!in_array(table_objet($type), $objets)) {
        return json_export(false);
    }
    // Maintenant que tout est bon, on cherche les informations sur cet objet
    include_spip('inc/filtres');
    if (!($titre = generer_info_entite($id, $type, 'titre'))) {
        return json_export(false);
    }
    // On simplifie le texte
    $titre = attribut_html($titre);
    return json_export(array('type' => $type, 'id' => "{$type}|{$id}", 'titre' => $titre));
}