From 79409bed093890d38cb2c60f8b6af079854cf8d2 Mon Sep 17 00:00:00 2001 From: polo Date: Tue, 23 Dec 2025 18:02:00 +0100 Subject: =?UTF-8?q?choix=20dur=C3=A9e=20stockage=20emails=20sensibles=20co?= =?UTF-8?q?nfigurables=20aussi,=20bug=20dur=C3=A9e=20emails=20sensibles?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/model/entities/Email.php | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) (limited to 'src/model') 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 $this->last_contact_date = new \DateTime; } - // la durée de conservation $period est propre au bloc formulaire (NodeData) - // la date de dernier contact - public function getDeletionDate(): \DateTime + public function getDeletionDate(): \DateTime // utilise une durée de conservation $period qui est propre au bloc formulaire (à son NodeData) { - // deux tests: + // tests appliqués: // => e-mail associé à un formulaire? // => ce formulaire dispose d'une durée de stockage spécifique? - $period = $this->node_data === null ? null : ($this->node_data->getData()['retention_period'] ?? null); + // => cette donnée est un entier > 0 + $key = $this->is_sensitive ? 'retention_period_sensible' : 'retention_period'; + $period = $this->node_data ? (int)($this->node_data->getData()[$key] ?? null) : null; - $period = (int)$period; - if($period === null || $period <= 0){ - $period = $this->is_sensitive ? self::DEFAULT_RETENTION_PERIOD_SENSITIVE : self::DEFAULT_RETENTION_PERIOD; - } - - $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" - // erreur si "sensible" mais sans date disponible (pas censé arriver) + $default = $this->is_sensitive ? self::DEFAULT_RETENTION_PERIOD_SENSITIVE : self::DEFAULT_RETENTION_PERIOD; + $period = ($period === null || $period <= 0) ? $default : $period; + $date = clone ($this->is_sensitive ? $this->is_sensitive_since : $this->last_contact_date); // erreur si "sensible" mais sans date disponible (pas censé arriver) return $date->modify('+ ' . (string)$period . ' month'); } } \ No newline at end of file -- cgit v1.2.3