Example #1
0
function inc_auth_dist() {

	global $connect_login ;

	$row = auth_mode();

	if ($row) return auth_init_droits($row);

	if (!$connect_login) return auth_a_loger();

	// Cas ou l'auteur a ete identifie mais on n'a pas d'info sur lui
	// C'est soit parce que la base est inutilisable,
	// soit parce que la table des auteurs a changee (restauration etc)
	// Pas la peine d'insister.
	// Renvoyer le nom fautif et une URL de remise a zero

	if (spip_connect())
		return array('login' => $connect_login,
			'site' => generer_url_public('', "action=logout&logout=prive"));

	$n = intval(sql_errno());
	spip_log("Erreur base de donnees $n " . sql_error());
	return $n ? $n : 1;
}
Example #2
0
/**
 * Loger un auteur suite a son identification
 *
 * @param array $auteur
 * @return bool
 */
function auth_loger($auteur)
{
    if (!is_array($auteur) or !count($auteur)) {
        return false;
    }
    // initialiser et poser le cookie de session
    unset($_COOKIE['spip_session']);
    auth_init_droits($auteur);
    // initialiser les prefs
    $p = $GLOBALS['visiteur_session']['prefs'];
    $p['cnx'] = $auteur['cookie'] == 'oui' ? 'perma' : '';
    sql_updateq('spip_auteurs', array('prefs' => serialize($p)), "id_auteur=" . $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);
    } else {
        spip_setcookie('spip_admin', '', 1);
    }
    //  bloquer ici le visiteur qui tente d'abuser de ses droits
    verifier_visiteur();
    return true;
}