Valider 0f0bd471 rédigé par Fil's avatar Fil
Parcourir les fichiers

une constante define('_ID_WEBMESTRES', '1:5'); dans mes_options permet...

une constante define('_ID_WEBMESTRES', '1:5'); dans mes_options permet d'eviter a ces deux admins de devoir s'authentifier par ftp pour faire les trucs dangereux ... le mecanisme est bon, mais il reste a voir le nommage et la valeur par defaut (je mettrais bien '1' mais ca ouvre un trou); par ailleurs meilleur nommage de autoriser('modererpetition', 'article'), desole pour qui aurait deja exploite cette API
parent e801513e
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -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");
	}
+2 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -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)
		)
	) {

+26 −5
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -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,8 +42,28 @@ 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');


	// 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)
@@ -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;
}

+13 −2
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -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;
}


?>