'.PHP_EOL;
echo ''.PHP_EOL;
// modification du formulaire de choix, reste à internationaliser
echo '';
@@ -1064,11 +1077,11 @@ function modifier_liste_ressources(action){
echo ' ';
echo '
';
echo '
'.get_vocab('sum_by_creator').'
';
-echo '
';
-echo '
';
echo '
';
echo '
';
diff --git a/contactFormulaire.php b/contactFormulaire.php
index a3384689d..6ba6d3a3a 100644
--- a/contactFormulaire.php
+++ b/contactFormulaire.php
@@ -3,7 +3,7 @@
* contactFormulaire.php
* Formulaire d'envoi de mail demandant une réservation
* Ce script fait partie de l'application GRR
- * Dernière modification : $Date: 2020-05-06 18:35$
+ * Dernière modification : $Date: 2020-05-07 11:25$
* @author JeromeB & Yan Naessens
* @copyright Copyright 2003-2020 Team DEVOME - JeromeB
* @link http://www.gnu.org/licenses/licenses.html
@@ -33,7 +33,12 @@
// pour le traitement des modules
include "./include/hook.class.php";
-
+// contrôle d'accès pour limiter les demandes
+if (!acces_formulaire_reservation()){
+ begin_page('','','','no_session');
+ showAccessDenied(page_accueil());
+ die();
+}
// code HTML
header('Content-Type: text/html; charset=utf-8');
if (!isset($_COOKIE['open']))
diff --git a/include/functions.inc.php b/include/functions.inc.php
index 9153a61bc..38fcfe8d5 100644
--- a/include/functions.inc.php
+++ b/include/functions.inc.php
@@ -2,7 +2,7 @@
/**
* include/functions.inc.php
* fichier Bibliothèque de fonctions de GRR
- * Dernière modification : $Date: 2020-05-05 18:37$
+ * Dernière modification : $Date: 2020-05-07 11:00$
* @author JeromeB & Laurent Delineau & Marc-Henri PAMISEUX & Yan Naessens
* @copyright Copyright 2003-2020 Team DEVOME - JeromeB
* @link http://www.gnu.org/licenses/licenses.html
@@ -4570,7 +4570,7 @@ function affichage_resa_planning_complet($vue, $resa, $heures)
$affichage .= " ".$resa[15];
// Bénéficiaire
- if (Settings::get("display_beneficicaire") == 1)
+ if (Settings::get("display_beneficiaire") == 1)
$affichage .= " ".affiche_nom_prenom_email($resa[4], $resa[12], "nomail");
// Type
@@ -5603,9 +5603,8 @@ function pageHeader2($day = '', $month = '', $year = '', $type_session = 'with_s
//Mail réservation
$sql = "SELECT value FROM ".TABLE_PREFIX."_setting WHERE name='mail_etat_destinataire'";
$res = grr_sql_query1($sql);
- grr_sql_free($res);
- if ( ( $res == 1 && $type_session == "no_session" ) || ( ( $res == 1 || $res == 2) && $type_session == "with_session" && (authGetUserLevel(getUserName(), -1, 'area')) == 1 ) )
+ if ((( $res == 1 && $type_session == "no_session" ) || ( ( $res == 1 || $res == 2) && $type_session == "with_session" && (authGetUserLevel(getUserName(), -1, 'area')) == 1 ) )&& acces_formulaire_reservation())
{
echo '
',PHP_EOL,'',PHP_EOL,'
',PHP_EOL;
}
@@ -5824,6 +5823,24 @@ function clean_input($data){
$data = htmlspecialchars($data);
return $data;
}
+
+/* fonction acces_formulaire_reservation
+* détermine si le quota de réservations par formulaire non modérées est atteint
+* rend TRUE ou FALSE (y compris si l'accès à la base est impossible)
+*/
+function acces_formulaire_reservation(){
+ if (!Settings::get('nb_max_resa_form'))
+ return FALSE;
+ else {
+ $quota = grr_sql_query1("SELECT COUNT(*) FROM ".TABLE_PREFIX."_entry WHERE (entry_type = -1 AND moderate = 1)");
+ // echo $quota;
+ if ($quota == -1)
+ return FALSE;
+ else
+ return ((Settings::get('nb_max_resa_form') - $quota) > 0);
+ }
+}
+
// Les lignes suivantes permettent la compatibilité de GRR avec la variable register_global à off
unset($day);
if (isset($_GET["day"]))
diff --git a/language/lang.de b/language/lang.de
index b57a1231c..df0a29a58 100644
--- a/language/lang.de
+++ b/language/lang.de
@@ -1,7 +1,7 @@
\ No newline at end of file
diff --git a/language/lang.en b/language/lang.en
index de204ab77..0060fb3d4 100644
--- a/language/lang.en
+++ b/language/lang.en
@@ -1,7 +1,7 @@
\ No newline at end of file
diff --git a/language/lang.es b/language/lang.es
index 01a13b5a8..190380961 100644
--- a/language/lang.es
+++ b/language/lang.es
@@ -1,6 +1,6 @@
\ No newline at end of file
diff --git a/language/lang.fr b/language/lang.fr
index ebc63ef82..69fb46155 100644
--- a/language/lang.fr
+++ b/language/lang.fr
@@ -1,6 +1,6 @@
diff --git a/language/lang.it b/language/lang.it
index 73cb38bb3..d4dda0489 100644
--- a/language/lang.it
+++ b/language/lang.it
@@ -1,7 +1,7 @@
\ No newline at end of file
diff --git a/traitementcontact.php b/traitementcontact.php
index f35124d17..a97ad0b35 100644
--- a/traitementcontact.php
+++ b/traitementcontact.php
@@ -3,7 +3,7 @@
* traitementcontact.php
* envoie l'email suite au formulaire
* Ce script fait partie de l'application GRR
- * Dernière modification : $Date: 2020-05-06 18:41$
+ * Dernière modification : $Date: 2020-05-07 11:24$
* @author Laurent Delineau & JeromeB & Yan Naessens
* @copyright Copyright 2003-2020 Team DEVOME - JeromeB
* @link http://www.gnu.org/licenses/licenses.html
@@ -31,6 +31,12 @@
if (!Settings::load())
die("Erreur chargement settings");
// $link = page_accueil();
+// contrôle d'accès
+if (!acces_formulaire_reservation()){
+ start_page_w_header('','','','no_session');
+ showAccessDenied(page_accueil());
+ die();
+}
// vérification des paramètres
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis : \\n \\n ";
$msg_ok = "Votre demande a bien été prise en compte.";
@@ -74,11 +80,11 @@
}
else
fatal_error(0,"ne devrait pas être atteint");
- echo $input['room'],'/',strftime("%c",$starttime),'/',strftime("%c",$endtime);
+ //echo $input['room'],'/',strftime("%c",$starttime),'/',strftime("%c",$endtime);
$plage_libre = mrbsCheckFree($input['room'],$starttime,$endtime,0,0);
- echo ' '.$plage_libre ;
+ //echo ' '.$plage_libre ;
if ($plage_libre == ""){// la plage est libre, on pose une réservation modérée et on envoie un courrier
- $entry_id = mrbsCreateSingleEntry($starttime, $endtime, 0, 0, $input['room'], '', '', $input['nom'].' '.$input['prenom'], $input['nom'].' '.$input['prenom'], 'A', $input['sujet'], -1,array(), 1, 0, '-', 0, 0);
+ $entry_id = mrbsCreateSingleEntry($starttime, $endtime, -1, 0, $input['room'], '', '', $input['nom'].' '.$input['prenom'].'|'.$input['email'], $input['nom'].' '.$input['prenom'], 'A', $input['sujet'], -1,array(), 1, 0, '-', 0, 0);
if ($entry_id != 0){ // l'insertion a réussi
$message = "réservation posée sous réserve";
// on envoie un message pour averir de la demande
@@ -108,7 +114,7 @@
while (($a = grr_sql_row($pnres, $i++)))
{ $periods_name[$i] = $a[0];}
}
- print_r($periods_name);
+ //print_r($periods_name);
$start_period = isset($periods_name[$input['start']])? $periods_name[$input['start']] :"";
$mail_corps .= "Premier créneau : ". $start_period." \n";
$mail_corps .= "Durée de la réservation : ".$input['dureemin']." créneau(x) \n";
@@ -131,7 +137,7 @@
else
$message = "au moins une partie de la plage demandée est occupée";
}
-
+// une page toute simple pour revenir au planning si on a suivi le chemin normal
echo '
';
die();
-
-// recherche si la plage demandée est libre
-$room_id = protect_data_sql($_POST['room']);
-$starttime = mktime($_POST['heure'],$_POST['minutes'],0,$_POST['start_month'],$_POST['start_day'],$_POST['start_year']);
-$endtime = $starttime + $_POST['duree']*3600 + $_POST['dureemin']*60;
-$plage_libre = mrbsCheckFree($room_id,$starttime,$endtime,0,0);
-if ($plage_libre != "") // la plage n'est pas libre
-{
- // echo "la plage est au moins partiellement occupée";
- start_page_w_header('','','','no_session');
- echo "";
- end_page();
- die();
-}
-else
-{ // la plage est libre, on préréserve le créneau sous forme d'une réservation à modérer, à compléter
- $id_resa = grr_sql_insert_id(); // récupère l'id de la résa juste créée -> mail au modérateur
- echo "plage libre";
- die();
-}
-// traitement des erreurs
-$message = "ok?";
-//if ($message != "")
-//{
- $message = $msg_erreur.$message;
- echo " ".$message;
- affiche_pop_up($message);
- //die();
-//}
-
-foreach ($_POST as $index => $valeur)
- $index = stripslashes(trim($valeur));
-// $mail_entete n'est plus utilisé, phpmailer s'en charge
-/* $mail_entete = "MIME-Version: 1.0\r\n";
-$mail_entete .= "From: {$_POST['nom']} "
-."<{$_POST['email']}>\r\n";
-$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
-$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
-$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
-$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n"; */
-
-$DE = $_POST['email']; // a été filtrée
-
-$mail_corps = " Message de :" .$_POST['prenom']." " .$_POST['nom'] . " ";
-$mail_corps .= "Email : ".$_POST['email']. " ";
-$mail_corps .= "Téléphone : ".$_POST['telephone']. "
";
-$mail_corps .= " Sujet de la réservation :".$_POST['sujet']. "