diff --git a/ecrire/exec/articles.php b/ecrire/exec/articles.php index b5be2f786f7b0dd55401d1a6c711155602d9c4f8..723abd1a32f96c79b45e54b48190f2796dce0d98 100644 --- a/ecrire/exec/articles.php +++ b/ecrire/exec/articles.php @@ -262,7 +262,7 @@ function boites_de_config_articles($id_article) $regler = $regler_moderation($id_article,"articles","id_article=$id_article"); } - if (autoriser('moderer_petition', 'article', $id_article)) { + if (autoriser('modererpetition', 'article', $id_article)) { $petitionner = charger_fonction('petitionner', 'inc'); $petition = $petitionner($id_article,"articles","id_article=$id_article"); } diff --git a/ecrire/exec/controle_petition.php b/ecrire/exec/controle_petition.php index 3b7649783ab9956216945c7d79408a49f00b2142..d422ad6cce1bb8ffe32b52711088377f88808b03 100644 --- a/ecrire/exec/controle_petition.php +++ b/ecrire/exec/controle_petition.php @@ -23,10 +23,10 @@ function exec_controle_petition_dist() $id_article = intval(_request('id_article')); if ( - autoriser('moderer_petition') + autoriser('modererpetition') OR ( $id_article > 0 - AND autoriser('moderer_petition', 'article', $id_article) + AND autoriser('modererpetition', 'article', $id_article) ) ) { diff --git a/ecrire/inc/admin.php b/ecrire/inc/admin.php index fd93c4aaecdd174c2a1d39334db5d9b8bb2b5fcc..42a7d4a6830aff0227668d7a411fcdef85c26767 100644 --- a/ecrire/inc/admin.php +++ b/ecrire/inc/admin.php @@ -31,8 +31,8 @@ function debut_admin($script, $action, $commentaire='') { $dir = _DIR_TMP; } else { $dir = _DIR_TRANSFERT . $connect_login . '/'; - } + $signal = fichier_admin($action); if (@file_exists($dir . $signal)) { spip_log ("Action admin: $action"); @@ -42,9 +42,29 @@ function debut_admin($script, $action, $commentaire='') { include_spip('inc/texte'); $commentaire = ("\n<p>".propre($commentaire)."</p>\n"); } + include_spip('inc/minipres'); + include_spip('inc/autoriser'); + - $form = $commentaire + // Si on est un super-admin, un bouton de validation suffit + // nom de l'autorisation a revoir... 'webmestre' veut tout et rien dire... + if (autoriser('webmestre')) { + if (_request('validation_admin') == $signal) { + spip_log ("Action super-admin: $action"); + return true; + } + $form = $commentaire + . "<form action='./' method='post'>" + . copy_request($script) + . '<input type="hidden" name="validation_admin" value="'.$signal.'" />' + . bouton_suivant(_T('bouton_valider')) + . "</form>"; + $js = ''; + } + + else { + $form = $commentaire . "<form action='./' method='post'>" . copy_request($script) . fieldset(_T('info_authentification_ftp').aide("ftp_auth"), @@ -57,14 +77,15 @@ function debut_admin($script, $action, $commentaire='') { . _T('info_creer_repertoire_2', array('repertoire' => joli_repertoire($dir))) . bouton_suivant(_T('bouton_recharger_page')))) . "</form>"; + $js = " onload='document.forms[0].fichier.value=\"\";barre_inserer(\"$signal\", document.forms[0].fichier)'"; + } // code volontairement tordu: // provoquer la copie dans le presse papier du nom du repertoire - // en remettant a vide le champ pour que ça marche aussi en cas + // en remettant a vide le champ pour que ca marche aussi en cas // de JavaScript inactif. echo minipres(_T('info_action', array('action' => $action)), - $form -, " onload='document.forms[0].fichier.value=\"\";barre_inserer(\"$signal\", document.forms[0].fichier)'"); + $form, $js); exit; } diff --git a/ecrire/inc/autoriser.php b/ecrire/inc/autoriser.php index 21126e366065d3d76677b95ebf44bcbb1ef63831..67e3a52a2a8453d049e406f4e0362085b76dcf1e 100644 --- a/ecrire/inc/autoriser.php +++ b/ecrire/inc/autoriser.php @@ -225,10 +225,21 @@ function autoriser_signature_modifier_dist($faire, $type, $id, $qui, $opt) { // Moderer la petition ? // = modifier l'article correspondant // = droits par defaut sinon (admin complet pour moderation de tout) -// http://doc.spip.org/@autoriser_moderer_petition_dist -function autoriser_moderer_petition_dist($faire, $type, $id, $qui, $opt) { +// http://doc.spip.org/@autoriser_modererpetition_dist +function autoriser_modererpetition_dist($faire, $type, $id, $qui, $opt) { return autoriser('modifier', $type, $id, $qui, $opt); } +// Est-on webmestre ? Signifie qu'on n'a meme pas besoin de passer par ftp +// pour modifier les fichiers, cf. notamment inc/admin +// = rien ni personne sauf definition de +// a l'avenir peut-etre autoriser "admin numero 1" ou une interface de selection +function autoriser_webmestre_dist($faire, $type, $id, $qui, $opt) { + return + (defined('_ID_WEBMESTRES') AND in_array($qui['id_auteur'], explode(':', _ID_WEBMESTRES)) AND $qui['statut'] == '0minirezo' AND !$qui['restreint']) + OR false; +} + + ?>