From 1b0bce3ab9fc70cda8db1f371c94d0820d05da16 Mon Sep 17 00:00:00 2001
From: "camille.sauvage@espci.fr" <>
Date: Mon, 19 Jan 2015 14:49:41 +0000
Subject: [PATCH] =?UTF-8?q?Configuration=20des=20autorisations=20d'=C3=A9d?=
 =?UTF-8?q?ition/modification=20des=20formulaires=20pour=20un=20admin=20re?=
 =?UTF-8?q?streint=20=C3=A0=20partir=20du=20formulaire=20de=20configuratio?=
 =?UTF-8?q?n=20de=20Formidable=20et=20non=20plus=20=C3=A0=20partir=20d'une?=
 =?UTF-8?q?=20variable=20globale?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 formidable_autorisations.php                  | 20 +++++++++++--------
 formidable_options.php                        |  4 ----
 .../configurer_formidable_analyse.html        |  5 +++++
 lang/formidable_fr.php                        |  2 ++
 paquet.xml                                    |  2 +-
 5 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/formidable_autorisations.php b/formidable_autorisations.php
index 5b2e16f8..9790b298 100644
--- a/formidable_autorisations.php
+++ b/formidable_autorisations.php
@@ -81,20 +81,24 @@ function formidable_autoriser(){}
 **/
 function autoriser_formulaire_editer_dist($faire, $type, $id, $qui, $opt){
 	$auteurs = lire_config('formidable/analyse/auteur');
-
+        
 	/* administrateur ? */
-	if (isset($qui['statut']) and $qui['statut'] <= '0minirezo' and (!$qui['restreint']))
+	if (isset($qui['statut']) and $qui['statut'] <= '0minirezo' and (count($qui['restreint']) == 0))
 		return true;
 
 	/* Test des autorisations par auteur */
 	if ($auteurs == 'on') {
 		return formidable_autoriser_par_auteur($id);
-	} else {
-		/* dans un else car la config 'auteurs' doit primer sur l'admin restreint */
-		if ($GLOBALS['formulaires']['autoriser_admin_restreint'])
-			return true;
-		else
-			return false;
+	}
+        
+        /* Test des autorisations pour un admin restreint */
+        if (count($qui['restreint'])) {
+            $autoriser_admin_restreint = isset($GLOBALS['autoriser_admin_restreint']) 
+                    ? $GLOBALS['autoriser_admin_restreint'] 
+                        : lire_config('formidable/analyse/autoriser_admin_restreint') == 'on' 
+                            ? true 
+                            : false;
+            return $autoriser_admin_restreint;
 	}
 }
 
diff --git a/formidable_options.php b/formidable_options.php
index e5011146..cdbef83c 100644
--- a/formidable_options.php
+++ b/formidable_options.php
@@ -26,10 +26,6 @@ if (isset($GLOBALS['formulaires']['passwd']) == false) {
 	);
 }
 
-if (isset($GLOBALS['formulaires']['autoriser_admin_restreint']) == false) {
-	$GLOBALS['formulaires']['autoriser_admin_restreint'] = false;
-}
-
 if (!function_exists('array_fill_keys')) {
     /**
      * Remplit un tableau avec des valeurs, en spécifiant les clés
diff --git a/formulaires/configurer_formidable_analyse.html b/formulaires/configurer_formidable_analyse.html
index 9509faa2..bd983398 100644
--- a/formulaires/configurer_formidable_analyse.html
+++ b/formulaires/configurer_formidable_analyse.html
@@ -28,6 +28,11 @@
 			label_case=<:formidable:activer_pages_label:>,
 			explication=<:formidable:activer_pages_explication:>
 			})]
+		[(#SAISIE{case,autoriser_admin_restreint,
+			li_class='pleine_largeur',
+			label_case=<:formidable:autoriser_admin_restreint:>,
+			explication=<:formidable:autoriser_admin_restreint_explication:>
+			})]
 
 		<input type="hidden" name="_meta_casier" value="formidable/analyse" />
 		<p class="boutons"><span class="image_loading">&nbsp;</span><input type="submit" class="submit" value="<:bouton_enregistrer:>" /></p>
diff --git a/lang/formidable_fr.php b/lang/formidable_fr.php
index c7292ce5..eaddef69 100644
--- a/lang/formidable_fr.php
+++ b/lang/formidable_fr.php
@@ -20,6 +20,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
 	'analyse_une_reponse_total' => 'Une personne a répondu à ce formulaire.',
 	'analyse_zero_reponse_total' => 'Aucune personne n’a répondu à ce formulaire.',
 	'aucun_traitement' => 'Aucun traitement',
+        'autoriser_admin_restreint' => 'Autoriser les administrateurs restreints à créer et modifier les formulaires',
+        'autoriser_admin_restreint_explication' => 'Par défaut, seuls les administrateurs ont accès à la création et modification des formulaires',
 
 	// B
 	'bouton_formulaires' => 'Formulaires',
diff --git a/paquet.xml b/paquet.xml
index e4dd75c1..0c69a1cf 100644
--- a/paquet.xml
+++ b/paquet.xml
@@ -1,7 +1,7 @@
 <paquet
 	prefix="formidable"
 	categorie="communication"
-	version="2.8.4"
+	version="2.8.5"
 	etat="stable"
 	compatibilite="[3.0.0;3.0.*]"
 	logo="images/formidable-64.png"
-- 
GitLab