X-Git-Url: http://git.cyclocoop.org/?p=velocampus%2Fweb%2Fwww.git;a=blobdiff_plain;f=www%2Fecrire%2Finc%2Fadmin.php;fp=www%2Fecrire%2Finc%2Fadmin.php;h=e6b0384f8930f2a96583b8b7c3ae1651872e4dad;hp=0000000000000000000000000000000000000000;hb=80b4d3e85f78d402ed2e73f8f5d1bf4c19962eed;hpb=aaf970bf4cdaf76689ecc10609048e18d073820c diff --git a/www/ecrire/inc/admin.php b/www/ecrire/inc/admin.php new file mode 100644 index 0000000..e6b0384 --- /dev/null +++ b/www/ecrire/inc/admin.php @@ -0,0 +1,181 @@ + + $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); +} +?>