Skip to content
Extraits de code Groupes Projets
Valider e954b380 rédigé par maieul@maieul.net's avatar maieul@maieul.net
Parcourir les fichiers

si on est un utilisateur non connecté, pouvoir récupérer le fichier de la...

si on est un utilisateur non connecté, pouvoir récupérer le fichier de la réponse qu'on a soit même posté, via le cookie
parent fae93c8f
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
<?php <?php
if (!defined("_ECRIRE_INC_VERSION")) return; if (!defined("_ECRIRE_INC_VERSION")) return;
include_spip('inc/autoriser'); include_spip('inc/autoriser');
include_spip('inc/formidable');
include_spip('inc/formidable_fichiers'); include_spip('inc/formidable_fichiers');
/** /**
* Récupère, si on est autorisé à voir la réponse du formulaire, * Récupère, si on est autorisé à voir la réponse du formulaire,
...@@ -10,9 +11,22 @@ include_spip('inc/formidable_fichiers'); ...@@ -10,9 +11,22 @@ include_spip('inc/formidable_fichiers');
function action_formidable_recuperer_fichier() { function action_formidable_recuperer_fichier() {
$securiser_action = charger_fonction('securiser_action', 'inc'); $securiser_action = charger_fonction('securiser_action', 'inc');
$arg = $securiser_action(); $arg = $securiser_action();
$arg = unserialize($arg); $arg = unserialize($arg);
if (autoriser('voir', 'formulaires_reponse', $arg['formulaire'])) {
// test si autorisation de voir la réponse par cookie
$cookie_ok = False;
if (isset($arg['cookie'])) {
$nom_cookie = formidable_generer_nom_cookie($arg['formulaire']);
if (isset($_COOKIE[$nom_cookie])) {
if ($arg['cookie'] == sha1($_COOKIE[$nom_cookie].secret_du_site())) {
$cookie_bdd = sql_getfetsel('cookie', 'spip_formulaires_reponses', 'id_formulaires_reponse='.sql_quote($arg['reponse']));
if ($cookie_bdd = $_COOKIE[$nom_cookie]) {
$cookie_ok = True;
}
}
}
}
if (autoriser('voir', 'formulaires_reponse', $arg['formulaire']) or $cookie_ok) {
$chemin_fichier = _DIR_FICHIERS_FORMIDABLE $chemin_fichier = _DIR_FICHIERS_FORMIDABLE
."formulaire_".$arg['formulaire'] ."formulaire_".$arg['formulaire']
."/reponse_".$arg['reponse'] ."/reponse_".$arg['reponse']
......
...@@ -417,7 +417,7 @@ function formulaires_formidable_traiter($id, $valeurs = array(), $id_formulaires ...@@ -417,7 +417,7 @@ function formulaires_formidable_traiter($id, $valeurs = array(), $id_formulaires
* *
* @return array * @return array
* Tableau des champs de type fichier * Tableau des champs de type fichier
**/ **/
function formulaires_formidable_fichiers($id, $valeurs = array(), $id_formulaires_reponse = false) { function formulaires_formidable_fichiers($id, $valeurs = array(), $id_formulaires_reponse = false) {
// On peut donner soit un id soit un identifiant // On peut donner soit un id soit un identifiant
if (!$id_formulaire = formidable_id_formulaire($id)) { if (!$id_formulaire = formidable_id_formulaire($id)) {
...@@ -452,7 +452,7 @@ function formidable_definir_contexte_avec_reponse($contexte, $id_formulaires_rep ...@@ -452,7 +452,7 @@ function formidable_definir_contexte_avec_reponse($contexte, $id_formulaires_rep
$saisies_fichiers = saisies_lister_avec_type($contexte['_saisies'], 'fichiers');// les saisies de type fichier $saisies_fichiers = saisies_lister_avec_type($contexte['_saisies'], 'fichiers');// les saisies de type fichier
$fichiers = array(); $fichiers = array();
$id_formulaire = $contexte['_formidable']['id_formulaire']; $id_formulaire = $contexte['_formidable']['id_formulaire'];
// On va chercher tous les champs // On va chercher tous les champs
$champs = sql_allfetsel( $champs = sql_allfetsel(
'nom, valeur', 'nom, valeur',
......
...@@ -270,6 +270,14 @@ function formidable_generer_url_action_recuperer_fichier($id_formulaire, $id_for ...@@ -270,6 +270,14 @@ function formidable_generer_url_action_recuperer_fichier($id_formulaire, $id_for
'saisie' => $saisie, 'saisie' => $saisie,
'fichier' => $fichier 'fichier' => $fichier
); );
// Pour les utilisateurs non authentifiés, on se base sur le cookier
$nom_cookie = formidable_generer_nom_cookie($id_formulaire);
if (isset($_COOKIE[$nom_cookie])) {
include_spip('inc/securiser_action');
$param['cookie'] = sha1($_COOKIE[$nom_cookie].secret_du_site());
}
$param = serialize($param); $param = serialize($param);
$securiser_action = charger_fonction('securiser_action','inc'); $securiser_action = charger_fonction('securiser_action','inc');
return $securiser_action('formidable_recuperer_fichier',$param,'', false); return $securiser_action('formidable_recuperer_fichier',$param,'', false);
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter