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

pouvoir effacer régulièrement les réponses d'un formulaire. Évite de conserver...

pouvoir effacer régulièrement les réponses d'un formulaire. Évite de conserver plus qu'il ne faut des données potentiellement privées
parent 6e89399b
Aucune branche associée trouvée
Étiquettes v3.3.0
Aucune requête de fusion associée trouvée
......@@ -37,6 +37,7 @@ formulaires/importer_formulaire.html -text
formulaires/importer_formulaire.php -text
formulaires/inc-formidable-boutons.html -text
formulaires/inc-formidable-unicite.html -text
genie/formidable_effacer_enregistrements.php -text
genie/formidable_effacer_fichiers_email.php -text
genie/formidable_hasher_ip.php -text
http/collectionjson/formulaires-ressource.html -text
......
......@@ -264,6 +264,7 @@ function formidable_formidable_traitements($flux) {
function formidable_taches_generales_cron($flux) {
$flux['formidable_hasher_ip'] = 24*3600;
$flux['formidable_effacer_fichiers_email'] = 24*3600;
$flux['formidable_effacer_enregistrements'] = 24*3600;
return $flux;
}
......
<?php
if (!defined('_ECRIRE_INC_VERSION')) {
return;
}
include_spip('inc/formidable_fichiers');
/**
* Effacer régulièrement les enregistrements obsolètes
**/
function genie_formidable_effacer_enregistrements($t) {
$res = sql_select("id_formulaire,traitements","spip_formulaires");
while ($result = sql_fetch($res)) {
$traitements = unserialize($result['traitements']);
$id_formulaire = $result['id_formulaire'];
if (
isset ($traitements['enregistrement']['effacement'])
and $traitements['enregistrement']['effacement']=='on'
and isset($traitements['enregistrement']['effacement_delai'])
) {
$delai = intval($traitements['enregistrement']['effacement_delai']);
if ($delai > 0) {
// si on a bien configuré un délai
$asupprimer = sql_select(
'id_formulaires_reponse',
'spip_formulaires_reponses',
"DATE_SUB(CURDATE(), INTERVAL $delai DAY) > maj
AND id_formulaire = $id_formulaire"
); // on utilise la date de maj, ce qui fait que lorsqu'une réponse est modifiée, l'échéance de la suppression est prorogée
while ($reponse = sql_fetch($asupprimer)){
$id_formulaires_reponse = $reponse['id_formulaires_reponse'];
formidable_effacer_fichiers_reponse($id_formulaire, $id_formulaires_reponse); // effacer d'abord les fichiers
sql_delete('spip_formulaires_reponses',"id_formulaires_reponse=$id_formulaires_reponse");// les réponses
sql_delete('spip_formulaires_reponses_champs',"id_formulaires_reponse=$id_formulaires_reponse");//les champs correspondant
spip_log("Effacement de la réponse $$id_formulaires_reponse du form $id_formulaire car antérieur à $delai jours");
}
}
}
}
return 1;
}
......@@ -256,6 +256,8 @@ $GLOBALS[$GLOBALS['idx_lang']] = array(
'traiter_enregistrement_option_auteur' => 'Utiliser les auteurs pour les formulaires',
'traiter_enregistrement_option_auteur_explication' => 'Attribuer un ou plusieurs auteurs à un formulaire. Si cette option est activée, seuls les auteurs d’un formulaire pourront accéder à leurs données.',
'traiter_enregistrement_option_choix_select_label' => 'Choisir une variable parmi celles proposées',
'traiter_enregistrement_option_effacement_delai_label' => 'Nombre de jours avant effacement',
'traiter_enregistrement_option_effacement_label' => 'Effacer régulièrement les résultats les plus anciens',
'traiter_enregistrement_option_identification_explication' => 'Si les réponses sont modifiables, quel procédé utiliser en priorité pour connaitre la réponse à modifier ?',
'traiter_enregistrement_option_identification_label' => 'Identification',
'traiter_enregistrement_option_ip_label' => 'Enregistrer les IPs (masquées après un délai de garde)',
......
<paquet
prefix="formidable"
categorie="communication"
version="3.2.7"
version="3.3.0"
etat="stable"
compatibilite="[3.0.0;3.1.*]"
logo="images/formidable-64.png"
......
......@@ -66,4 +66,17 @@ options:
nom: 'analyse_exclure_champs'
label: '<:formidable:analyse_exclure_champs_label:>'
explication: '<:formidable:analyse_exclure_champs_explication:>'
rows: 4
\ No newline at end of file
rows: 4
-
saisie: 'case'
options:
nom: 'effacement'
label_case: '<:formidable:traiter_enregistrement_option_effacement_label:>'
li_class: 'pleine_largeur'
-
saisie: 'input'
options:
nom: 'effacement_delai'
label: '<:formidable:traiter_enregistrement_option_effacement_delai_label:>'
afficher_si: '@traitements[enregistrement][effacement]@=="on"'
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