Пример #1
0
/**
 * Appelle toutes les fonctions de modification d'un auteur
 *
 * @param int $id_auteur
 * @param array $set
 * @param bool $force_update
 *   permet de forcer la maj en base des champs fournis, sans passer par instancier
 *   utilise par auth/spip
 * @return string
 */
function auteur_modifier($id_auteur, $set = null, $force_update = false)
{
    include_spip('inc/modifier');
    include_spip('inc/filtres');
    $c = collecter_requests(objet_info('auteur', 'champs_editables'), $force_update ? array() : array('webmestre', 'pass', 'login'), $set);
    if ($err = objet_modifier_champs('auteur', $id_auteur, array('nonvide' => array('nom' => _T('ecrire:item_nouvel_auteur'))), $c)) {
        return $err;
    }
    $session = $c;
    $err = '';
    if (!$force_update) {
        // Modification de statut, changement de rubrique ?
        $c = collecter_requests(array('statut', 'new_login', 'new_pass', 'login', 'pass', 'webmestre', 'restreintes', 'id_parent'), array(), $set);
        if (isset($c['new_login']) and !isset($c['login'])) {
            $c['login'] = $c['new_login'];
        }
        if (isset($c['new_pass']) and !isset($c['pass'])) {
            $c['pass'] = $c['new_pass'];
        }
        $err = auteur_instituer($id_auteur, $c);
        $session = array_merge($session, $c);
    }
    // .. mettre a jour les sessions de cet auteur
    include_spip('inc/session');
    $session['id_auteur'] = $id_auteur;
    unset($session['new_login']);
    unset($session['new_pass']);
    actualiser_sessions($session);
    return $err;
}
Пример #2
0
/**
 * En fin de hit, synchroniser toutes les sessions
 */
function terminer_actualiser_sessions()
{
    // se remettre dans le dossier de travail au cas ou Apache a change
    chdir(_ROOT_CWD);
    // recuperer les variables a effacer
    $remove = session_set(false);
    // mettre a jour toutes les sessions
    actualiser_sessions($GLOBALS['visiteur_session'], $remove);
}
Пример #3
0
/**
 * Ajouter une donnee dans la session SPIP
 * http://doc.spip.org/@session_set
 *
 * @param string $nom
 * @param null $val
 * @return void
 */
function session_set($nom, $val = null)
{
    if (is_null($val)) {
        // rien a faire
        if (!isset($GLOBALS['visiteur_session'][$nom])) {
            return;
        }
        unset($GLOBALS['visiteur_session'][$nom]);
    } else {
        // On ajoute la valeur dans la globale
        $GLOBALS['visiteur_session'][$nom] = $val;
    }
    ajouter_session($GLOBALS['visiteur_session']);
    actualiser_sessions($GLOBALS['visiteur_session']);
}
Пример #4
0
function session_set($nom, $val=null) {
	// On ajoute la valeur dans la globale
	$GLOBALS['visiteur_session'][$nom] = $val;
	
	ajouter_session($GLOBALS['visiteur_session']);
	actualiser_sessions($GLOBALS['visiteur_session']);
}
Пример #5
0
function revision_auteur($id_auteur, $c=false) {

	$r = modifier_contenu('auteur', $id_auteur,
		array(
			'nonvide' => array('nom' => _T('ecrire:item_nouvel_auteur'))
		),
		$c);

	// .. mettre a jour les fichiers .htpasswd et .htpasswd-admin
	if (isset($c['login'])
	OR isset($c['pass'])
	OR isset($c['statut'])
	) {
		include_spip('inc/acces');
		ecrire_acces();
	}

	// .. mettre a jour les sessions de cet auteur
	include_spip('inc/session');
	$c['id_auteur'] = $id_auteur;
	actualiser_sessions($c);
}