73 lines
1.7 KiB
PHP
73 lines
1.7 KiB
PHP
<?php
|
|
|
|
require_once "UserDAOInterface.php";
|
|
|
|
class LocalUserDAO implements UserDAOInterface {
|
|
|
|
private string $file = "data/users.json";
|
|
|
|
private function loadUsers() {
|
|
if (!file_exists($this->file)) {
|
|
return [];
|
|
}
|
|
|
|
$json = file_get_contents($this->file);
|
|
$users = json_decode($json, true);
|
|
|
|
return is_array($users) ? $users : [];
|
|
}
|
|
|
|
private function saveUsers($users) {
|
|
file_put_contents(
|
|
$this->file,
|
|
json_encode($users, JSON_PRETTY_PRINT)
|
|
);
|
|
}
|
|
|
|
public function findUser($email) {
|
|
$users = $this->loadUsers();
|
|
|
|
foreach ($users as $user) {
|
|
if ($user["email"] === $email) {
|
|
|
|
if (!isset($user["vorname"]) && isset($user["username"])) {
|
|
$nameParts = explode(" ", $user["username"], 2);
|
|
$user["vorname"] = $nameParts[0] ?? "";
|
|
$user["nachname"] = $nameParts[1] ?? "";
|
|
}
|
|
|
|
return $user;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
public function addUser($email, $vorname, $nachname, $password) {
|
|
$users = $this->loadUsers();
|
|
|
|
$users[] = [
|
|
"email" => $email,
|
|
"vorname" => $vorname,
|
|
"nachname" => $nachname,
|
|
"password" => $password
|
|
];
|
|
|
|
$this->saveUsers($users);
|
|
}
|
|
|
|
public function deleteUser($email) {
|
|
$users = $this->loadUsers();
|
|
|
|
foreach ($users as $i => $user) {
|
|
if ($user["email"] === $email) {
|
|
unset($users[$i]);
|
|
$users = array_values($users);
|
|
$this->saveUsers($users);
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
} |