/** * 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; }
/** * 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); }
/** * 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']); }
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']); }
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); }