aboutsummaryrefslogtreecommitdiff
path: root/src/model
diff options
context:
space:
mode:
authorpolo <ordipolo@gmx.fr>2025-12-23 18:02:00 +0100
committerpolo <ordipolo@gmx.fr>2025-12-23 18:02:00 +0100
commit79409bed093890d38cb2c60f8b6af079854cf8d2 (patch)
treed30799c43d1566552f000e80d3ee52c3af0806ed /src/model
parent774437d3196878388e294a3833a73e900000b5e4 (diff)
downloadcms-79409bed093890d38cb2c60f8b6af079854cf8d2.tar.gz
cms-79409bed093890d38cb2c60f8b6af079854cf8d2.tar.bz2
cms-79409bed093890d38cb2c60f8b6af079854cf8d2.zip
choix durée stockage emails sensibles configurables aussi, bug durée emails sensibles
Diffstat (limited to 'src/model')
-rw-r--r--src/model/entities/Email.php20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/model/entities/Email.php b/src/model/entities/Email.php
index d54b3cc..ff76653 100644
--- a/src/model/entities/Email.php
+++ b/src/model/entities/Email.php
@@ -113,23 +113,19 @@ class Email
113 $this->last_contact_date = new \DateTime; 113 $this->last_contact_date = new \DateTime;
114 } 114 }
115 115
116 // la durée de conservation $period est propre au bloc formulaire (NodeData) 116 public function getDeletionDate(): \DateTime // utilise une durée de conservation $period qui est propre au bloc formulaire (à son NodeData)
117 // la date de dernier contact
118 public function getDeletionDate(): \DateTime
119 { 117 {
120 // deux tests: 118 // tests appliqués:
121 // => e-mail associé à un formulaire? 119 // => e-mail associé à un formulaire?
122 // => ce formulaire dispose d'une durée de stockage spécifique? 120 // => ce formulaire dispose d'une durée de stockage spécifique?
123 $period = $this->node_data === null ? null : ($this->node_data->getData()['retention_period'] ?? null); 121 // => cette donnée est un entier > 0
122 $key = $this->is_sensitive ? 'retention_period_sensible' : 'retention_period';
123 $period = $this->node_data ? (int)($this->node_data->getData()[$key] ?? null) : null;
124 124
125 $period = (int)$period; 125 $default = $this->is_sensitive ? self::DEFAULT_RETENTION_PERIOD_SENSITIVE : self::DEFAULT_RETENTION_PERIOD;
126 if($period === null || $period <= 0){ 126 $period = ($period === null || $period <= 0) ? $default : $period;
127 $period = $this->is_sensitive ? self::DEFAULT_RETENTION_PERIOD_SENSITIVE : self::DEFAULT_RETENTION_PERIOD;
128 }
129
130 $date = $this->is_sensitive ? (clone $this->is_sensitive_since) : (clone $this->last_contact_date); // oui durée 5 ans, non durée 3 ans "glissante"
131 // erreur si "sensible" mais sans date disponible (pas censé arriver)
132 127
128 $date = clone ($this->is_sensitive ? $this->is_sensitive_since : $this->last_contact_date); // erreur si "sensible" mais sans date disponible (pas censé arriver)
133 return $date->modify('+ ' . (string)$period . ' month'); 129 return $date->modify('+ ' . (string)$period . ' month');
134 } 130 }
135} \ No newline at end of file 131} \ No newline at end of file