mirror of
https://github.com/maelgangloff/domain-watchdog.git
synced 2025-12-29 16:15:04 +00:00
feat: use timestamp instead of bool on is_verified
This commit is contained in:
@@ -73,10 +73,10 @@ class RegistrationController extends AbstractController
|
||||
$user,
|
||||
$user->getPassword()
|
||||
)
|
||||
);
|
||||
)->setCreatedAt(new \DateTimeImmutable());
|
||||
|
||||
if (false === (bool) $this->getParameter('registration_verify_email')) {
|
||||
$user->setVerified(true);
|
||||
$user->setVerifiedAt($user->getCreatedAt());
|
||||
} else {
|
||||
$email = $this->emailVerifier->sendEmailConfirmation('app_verify_email', $user,
|
||||
(new TemplatedEmail())
|
||||
|
||||
@@ -75,7 +75,10 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
|
||||
private Collection $connectors;
|
||||
|
||||
#[ORM\Column]
|
||||
private bool $isVerified = false;
|
||||
private ?\DateTimeImmutable $createdAt = null;
|
||||
|
||||
#[ORM\Column(nullable: true)]
|
||||
private ?\DateTimeImmutable $verifiedAt = null;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
@@ -215,14 +218,26 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function isVerified(): bool
|
||||
public function getCreatedAt(): ?\DateTimeImmutable
|
||||
{
|
||||
return $this->isVerified;
|
||||
return $this->createdAt;
|
||||
}
|
||||
|
||||
public function setVerified(bool $isVerified): static
|
||||
public function setCreatedAt(\DateTimeImmutable $createdAt): static
|
||||
{
|
||||
$this->isVerified = $isVerified;
|
||||
$this->createdAt = $createdAt;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getVerifiedAt(): ?\DateTimeImmutable
|
||||
{
|
||||
return $this->verifiedAt;
|
||||
}
|
||||
|
||||
public function setVerifiedAt(\DateTimeImmutable $verifiedAt): static
|
||||
{
|
||||
$this->verifiedAt = $verifiedAt;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
@@ -47,7 +47,7 @@ readonly class EmailVerifier
|
||||
{
|
||||
$this->verifyEmailHelper->validateEmailConfirmationFromRequest($request, (string) $user->getId(), $user->getEmail());
|
||||
|
||||
$user->setVerified(true);
|
||||
$user->setVerifiedAt(new \DateTimeImmutable());
|
||||
|
||||
$this->entityManager->persist($user);
|
||||
$this->entityManager->flush();
|
||||
|
||||
@@ -33,7 +33,7 @@ class JWTAuthenticator implements AuthenticationSuccessHandlerInterface
|
||||
|
||||
public function handleAuthenticationSuccess(UserInterface $user, $jwt = null): Response
|
||||
{
|
||||
if (($user instanceof User) && !$user->isVerified()) {
|
||||
if (($user instanceof User) && null === $user->getVerifiedAt()) {
|
||||
throw new AccessDeniedHttpException('You have not yet validated your email address.');
|
||||
}
|
||||
|
||||
|
||||
@@ -57,8 +57,8 @@ class OAuthAuthenticator extends OAuth2Authenticator implements AuthenticationEn
|
||||
return $existingUser;
|
||||
}
|
||||
|
||||
$user = new User();
|
||||
$user->setEmail($userFromToken->getEmail())->setVerified(true);
|
||||
$user = (new User())->setCreatedAt(new \DateTimeImmutable());
|
||||
$user->setEmail($userFromToken->getEmail())->setVerifiedAt($user->getCreatedAt());
|
||||
$this->em->persist($user);
|
||||
$this->em->flush();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user