10namespace ComusParty\Models;
12use DateMalformedStringException;
64 $stmt = $this->pdo->prepare(
68 $stmt->bindParam(
':id', $id);
70 $stmt->setFetchMode(PDO::FETCH_ASSOC);
71 $userTab = $stmt->fetch();
72 if ($userTab ===
false) {
75 return $this->
hydrate($userTab);
87 $user->setId($data[
'id']);
88 $user->setEmail($data[
'email']);
89 $user->setEmailVerifiedAt($data[
'email_verified_at'] ?
new DateTime($data[
'email_verified_at']) :
null);
90 $user->setEmailVerifyToken($data[
'email_verif_token']);
91 $user->setPassword($data[
'password']);
92 $user->setDisabled($data[
'disabled']);
93 $user->setCreatedAt(
new DateTime($data[
'created_at']));
94 $user->setUpdatedAt(
new DateTime($data[
'updated_at']));
105 $stmt = $this->pdo->prepare(
108 email_verified_at = :email_verified_at,
109 email_verif_token = :email_verif_token,
110 password = :password,
120 $id = $user->
getId();
122 $stmt->bindParam(
':email', $email);
123 $stmt->bindParam(
':email_verified_at', $verifiedAt);
124 $stmt->bindParam(
':email_verif_token', $emailVerifyToken);
125 $stmt->bindParam(
':password', $password);
126 $stmt->bindParam(
':disabled', $disabled);
127 $stmt->bindParam(
':id', $id);
128 return $stmt->execute();
141 $stmt = $this->pdo->prepare(
144 WHERE email = :email');
145 $stmt->bindParam(
':email', $email);
147 $stmt->setFetchMode(PDO::FETCH_ASSOC);
148 $userTab = $stmt->fetch();
149 if ($userTab ===
false) {
152 return $this->
hydrate($userTab);
166 $stmt = $this->pdo->prepare(
170 $stmt->bindParam(
':id', $id);
182 $stmt = $this->pdo->prepare(
185 WHERE email_verif_token = :email_verif_token');
186 $stmt->bindParam(
':email_verif_token', $emailVerifToken);
188 $stmt->setFetchMode(PDO::FETCH_ASSOC);
189 $userTab = $stmt->fetch();
190 if ($userTab ===
false) {
193 return $this->
hydrate($userTab);
204 public function createUser(
string $email,
string $password,
string $emailVerifToken): bool
206 $stmtUser = $this->pdo->prepare(
"INSERT INTO " .
DB_PREFIX .
"user (email, password, email_verified_at, email_verif_token, disabled) VALUES (:email, :password, null, :email_verif_token, 0)");
207 $stmtUser->bindParam(
':email', $email);
208 $stmtUser->bindParam(
':password', $password);
209 $stmtUser->bindParam(
':email_verif_token', $emailVerifToken);
210 return $stmtUser->execute();
220 $stmtUser = $this->pdo->prepare(
"UPDATE " .
DB_PREFIX .
"user SET email_verified_at = now(), email_verif_token = null WHERE email_verif_token = :email_verif_token");
221 $stmtUser->bindParam(
':email_verif_token', $emailVerifToken);
222 return $stmtUser->execute();
findByEmailVerifyToken(string $emailVerifToken)
Retourne un objet User (ou null) à partir du token de vérification d'email passé en paramètre.
disableAccount($id)
Désactive un compte utilisateur à partir de l'ID passé en paramètre.
confirmUser(string $emailVerifToken)
Confirme un utilisateur en mettant à jour la date de confirmation et en supprimant le token de vérifi...
hydrate(array $data)
Hydrate un objet User à partir des données passées en paramètre.
createUser(string $email, string $password, string $emailVerifToken)
Crée un utilisateur en base de données.
getPdo()
Retourne la connexion à la base de données.
findById(int $id)
Retourne un objet User (ou null) à partir de l'ID passé en paramètre.
setPdo(?PDO $pdo)
Modifie la connexion à la base de données.
findByEmail(?string $email)
__construct(?PDO $pdo)
Le constructeur de la classe UserDAO.
update(User $user)
Met à jour un utilisateur en base de données.
getEmail()
Retourne l'adresse email de l'utilisateur.
getPassword()
Retourne le mot de passe de l'utilisateur.
getId()
Retourne l'identifiant de l'utilisateur.
getEmailVerifyToken()
Retourne le token de vérification de l'adresse email.
getEmailVerifiedAt()
Retourne la date de vérification de l'adresse e-mail.
getDisabled()
Retourne l'état de l'utilisateur (activé ou désactivé)
const DB_PREFIX
Préfixe des tables de la base de données.