@@ -117,6 +117,9 @@ abstract class AbstractUser implements SymfonyUserInterface, PasswordAuthenticat
117117 #[ApiProperty(readable: false , writable: false )]
118118 protected ?\DateTime $ emailLastUpdatedAt = null ;
119119
120+ #[ApiProperty(readable: false , writable: false )]
121+ protected ?\DateTime $ emailAddressVerificationRequestedAt = null ;
122+
120123 /**
121124 * `final` to make `createFromPayload` safe. Could instead make an interface? Or abstract and force child to define constructor?
122125 */
@@ -253,9 +256,6 @@ public function getNewEmailAddress(): ?string
253256 public function setNewEmailAddress (?string $ newEmailAddress ): self
254257 {
255258 $ this ->newEmailAddress = $ newEmailAddress ;
256- if ($ newEmailAddress ) {
257- $ this ->newEmailAddressChangeRequestedAt = new \DateTime ();
258- }
259259
260260 return $ this ;
261261 }
@@ -268,9 +268,6 @@ public function getNewEmailConfirmationToken(): ?string
268268 public function setNewEmailConfirmationToken (?string $ newEmailConfirmationToken ): self
269269 {
270270 $ this ->newEmailConfirmationToken = $ newEmailConfirmationToken ;
271- if ($ newEmailConfirmationToken ) {
272- $ this ->newEmailAddressChangeRequestedAt = new \DateTime ();
273- }
274271
275272 return $ this ;
276273 }
@@ -280,6 +277,11 @@ public function getNewEmailAddressChangeRequestedAt(): ?\DateTime
280277 return $ this ->newEmailAddressChangeRequestedAt ;
281278 }
282279
280+ public function setNewEmailAddressChangeRequestedAt (?\DateTime $ newEmailAddressChangeRequestedAt ): void
281+ {
282+ $ this ->newEmailAddressChangeRequestedAt = $ newEmailAddressChangeRequestedAt ;
283+ }
284+
283285 public function isEmailAddressVerified (): bool
284286 {
285287 return $ this ->emailAddressVerified ;
@@ -300,9 +302,16 @@ public function getEmailAddressVerifyToken(): ?string
300302 public function setEmailAddressVerifyToken (?string $ emailAddressVerifyToken ): void
301303 {
302304 $ this ->emailAddressVerifyToken = $ emailAddressVerifyToken ;
303- if ($ emailAddressVerifyToken ) {
304- $ this ->emailLastUpdatedAt = new \DateTime ();
305- }
305+ }
306+
307+ public function getEmailAddressVerificationRequestedAt (): ?\DateTime
308+ {
309+ return $ this ->emailAddressVerificationRequestedAt ;
310+ }
311+
312+ public function setEmailAddressVerificationRequestedAt (?\DateTime $ emailAddressVerificationRequestedAt ): void
313+ {
314+ $ this ->emailAddressVerificationRequestedAt = $ emailAddressVerificationRequestedAt ;
306315 }
307316
308317 public function isPasswordRequestLimitReached ($ ttl ): bool
@@ -323,7 +332,7 @@ public function isNewEmailVerifyRequestLimitReached($ttl): bool
323332
324333 public function isEmailVerifyRequestLimitReached ($ ttl ): bool
325334 {
326- $ lastRequest = $ this ->emailLastUpdatedAt ;
335+ $ lastRequest = $ this ->getEmailAddressVerificationRequestedAt () ;
327336
328337 return $ lastRequest instanceof \DateTime
329338 && $ lastRequest ->getTimestamp () + $ ttl > time ();
@@ -349,7 +358,6 @@ public function serialize(): string
349358 */
350359 public function unserialize (string $ serialized ): self
351360 {
352- $ id = null ;
353361 [
354362 $ id ,
355363 $ this ->username ,
0 commit comments