diff options
| author | polo <ordipolo@gmx.fr> | 2025-12-23 18:02:00 +0100 |
|---|---|---|
| committer | polo <ordipolo@gmx.fr> | 2025-12-23 18:02:00 +0100 |
| commit | 79409bed093890d38cb2c60f8b6af079854cf8d2 (patch) | |
| tree | d30799c43d1566552f000e80d3ee52c3af0806ed /src/model/entities/Email.php | |
| parent | 774437d3196878388e294a3833a73e900000b5e4 (diff) | |
| download | cms-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/entities/Email.php')
| -rw-r--r-- | src/model/entities/Email.php | 20 |
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 |
