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); }
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); }
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)); }
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)); }