Comus Party 1.0.0
Application web de mini-jeux en ligne
Chargement...
Recherche...
Aucune correspondance
passwordResetToken.dao.php
Aller à la documentation de ce fichier.
1<?php
10
11namespace ComusParty\Models;
12
13use DateMalformedStringException;
14use DateTime;
15use PDO;
16
22{
27 private ?PDO $pdo;
28
33 public function __construct(?PDO $pdo)
34 {
35 $this->pdo = $pdo;
36 }
37
42 public function getPdo(): ?PDO
43 {
44 return $this->pdo;
45 }
46
51 public function setPdo(?PDO $pdo): void
52 {
53 $this->pdo = $pdo;
54 }
55
62 public function findByUserId(int $userId): ?PasswordResetToken
63 {
64 $stmt = $this->pdo->prepare('SELECT * FROM ' . DB_PREFIX . 'pswd_reset_token WHERE user_id = :userId');
65 $stmt->execute(['userId' => $userId]);
66 $row = $stmt->fetch();
67 if ($row === false) {
68 return null;
69 }
70 return $this->hydrate($row);
71 }
72
79 private function hydrate(array $row): PasswordResetToken
80 {
81 return new PasswordResetToken($row['user_id'], $row['token'], new DateTime($row['created_at']));
82 }
83
90 public function findByToken(string $token): ?PasswordResetToken
91 {
92 $stmt = $this->pdo->prepare('SELECT * FROM ' . DB_PREFIX . 'pswd_reset_token WHERE token = :token');
93 $stmt->execute(['token' => $token]);
94 $row = $stmt->fetch();
95 if ($row === false) {
96 return null;
97 }
98 return $this->hydrate($row);
99 }
100
106 public function insert(PasswordResetToken $token): bool
107 {
108 $stmt = $this->pdo->prepare('INSERT INTO ' . DB_PREFIX . 'pswd_reset_token (user_id, token, created_at) VALUES (:userId, :token, :createdAt)');
109 return $stmt->execute([
110 'userId' => $token->getUserId(),
111 'token' => $token->getToken(),
112 'createdAt' => $token->getCreatedAt()->format('Y-m-d H:i:s')
113 ]);
114 }
115
121 public function delete(int $userId): bool
122 {
123 $stmt = $this->pdo->prepare('DELETE FROM ' . DB_PREFIX . 'pswd_reset_token WHERE user_id = :userId');
124 return $stmt->execute(['userId' => $userId]);
125 }
126
133 private function hydrateMany(array $rows): array
134 {
135 $tokens = [];
136 foreach ($rows as $row) {
137 $tokens[] = $this->hydrate($row);
138 }
139 return $tokens;
140 }
141}
findByUserId(int $userId)
Retourne un objet PasswordResetToken (ou null) à partir de l'ID passé en paramètre.
findByToken(string $token)
Retourne un objet PasswordResetToken (ou null) à partir du token passé en paramètre.
insert(PasswordResetToken $token)
Insère un token de réinitialisation de mot de passe en base de données.
hydrateMany(array $rows)
Hydrate un tableau de données en un tableau d'objets PasswordResetToken.
getPdo()
Retourne la connexion à la base de données.
hydrate(array $row)
Hydrate un tableau de données en un objet PasswordResetToken.
setPdo(?PDO $pdo)
Modifie la connexion à la base de données.
__construct(?PDO $pdo)
Le constructeur de la classe UserDAO.
getUserId()
Retourne l'identifiant de l'utilisateur.
getCreatedAt()
Retourne la date de création du token.
getToken()
Retourne le token de réinitialisation de mot de passe.
const DB_PREFIX
Préfixe des tables de la base de données.
Definition db.php:52