$GLOBALS['visiteur_session']['id_auteur']) { include_spip('inc/minipres'); spip_log("refus de lancer $script, priorite a $valeur"); return minipres(_T('info_travaux_texte')); } } } $journal = "spip"; if (autoriser('configurer')) // c'est une action webmestre, soit par ftp soit par statut webmestre $journal = 'webmestre'; // on pourrait statuer automatiquement les webmestres a l'init d'une action auth par ftp ... ? spip_log("admin $pref" . ($valeur ? " (reprise)" : ' (init)'),$journal); return ''; } // http://doc.spip.org/@dir_admin function dir_admin() { if (autoriser('configurer')) { return _DIR_TMP; } else { return _DIR_TRANSFERT . $GLOBALS['visiteur_session']['login'] . '/'; } } // http://doc.spip.org/@fichier_admin function fichier_admin($action, $pref='admin_') { return $pref . substr(md5($action.(time() & ~2047).$GLOBALS['visiteur_session']['login']), 0, 10); } // demande la creation d'un repertoire et sort // ou retourne sans rien faire si repertoire deja la. // http://doc.spip.org/@debut_admin function debut_admin($script, $action='', $corps='') { if ((!$action) || (!autoriser('chargerftp'))) { include_spip('inc/minipres'); return minipres(); } else { $dir = dir_admin(); $signal = fichier_admin($script); if (@file_exists($dir . $signal)) { spip_log ("Action admin: $action"); return ''; } include_spip('inc/minipres'); // Si on est un super-admin, un bouton de validation suffit // sauf dans les cas destroy if ((autoriser('webmestre') OR $script === 'admin_repair') AND $script != 'delete_all') { if (_request('validation_admin') == $signal) { spip_log ("Action super-admin: $action"); return ''; } $corps .= ''; $suivant = _T('bouton_valider'); $js = ''; } else { $corps .= "
" . _T('info_authentification_ftp') . aide("ftp_auth") . "\n\n" . "
" . _T('info_creer_repertoire_2', array('repertoire' => joli_repertoire($dir))) . "
"; $suivant = _T('bouton_recharger_page'); // code volontairement tordu: // provoquer la copie dans le presse papier du nom du repertoire // en remettant a vide le champ pour que ca marche aussi en cas // de JavaScript inactif. $js = " onload='document.forms[0].fichier.value=\"\";barre_inserer(\"$signal\", document.forms[0].fichier)'"; } $form = copy_request($script, $corps, $suivant); $info_action = _T('info_action', array('action' => $action)); return minipres($info_action, $form, $js); } } // http://doc.spip.org/@fin_admin function fin_admin($action) { $signal = dir_admin() . fichier_admin($action); spip_unlink($signal); if ($action != 'delete_all') { effacer_meta($action); effacer_meta('admin'); spip_log("efface les meta admin et $action "); } } // http://doc.spip.org/@copy_request function copy_request($script, $suite, $submit='') { include_spip('inc/filtres'); foreach($_POST as $n => $c) { if (($n != 'fichier') AND !is_array($c)) $suite .= "\n"; } return generer_form_ecrire($script, $suite, '', $submit); } ?>