store password hash in json user repo

This commit is contained in:
Yisroel Baum 2026-04-24 13:19:15 +03:00
parent a52bb18b13
commit ada29ea957
Signed by: yisroelbaum
GPG key ID: 0FA60884F75520A9

View file

@ -22,6 +22,7 @@ class JsonUserRepository implements UserRepository
$users[] = [ $users[] = [
'id' => $id, 'id' => $id,
'email' => (string) $dto->email, 'email' => (string) $dto->email,
'passwordHash' => $dto->passwordHash,
'isAdmin' => $dto->isAdmin, 'isAdmin' => $dto->isAdmin,
]; ];
$this->writeUsers($users); $this->writeUsers($users);
@ -29,6 +30,7 @@ class JsonUserRepository implements UserRepository
return new User( return new User(
id: $id, id: $id,
email: $dto->email, email: $dto->email,
passwordHash: $dto->passwordHash,
isAdmin: $dto->isAdmin, isAdmin: $dto->isAdmin,
); );
} }
@ -39,11 +41,7 @@ class JsonUserRepository implements UserRepository
foreach ($users as $data) { foreach ($users as $data) {
if ($data['id'] === $id) { if ($data['id'] === $id) {
return new User( return $this->hydrate($data);
id: $data['id'],
email: new EmailAddress($data['email']),
isAdmin: $data['isAdmin'] ?? false,
);
} }
} }
@ -56,17 +54,23 @@ class JsonUserRepository implements UserRepository
foreach ($users as $data) { foreach ($users as $data) {
if ($data['email'] === (string) $email) { if ($data['email'] === (string) $email) {
return new User( return $this->hydrate($data);
id: $data['id'],
email: new EmailAddress($data['email']),
isAdmin: $data['isAdmin'] ?? false,
);
} }
} }
return null; return null;
} }
private function hydrate(array $data): User
{
return new User(
id: $data['id'],
email: new EmailAddress($data['email']),
passwordHash: $data['passwordHash'] ?? '',
isAdmin: $data['isAdmin'] ?? false,
);
}
private function readUsers(): array private function readUsers(): array
{ {
if (!file_exists($this->filePath)) { if (!file_exists($this->filePath)) {