Löschen von User eingefügt

This commit is contained in:
Matthias Grief
2024-12-02 13:54:15 +01:00
committed by Safak
parent 331adbcd5b
commit 50813b1a0d

View File

@@ -99,6 +99,51 @@ class User
return false; return false;
} }
/**
* Löscht einen Benutzer
* @param string $password Richtiges Passwort zu diesem Nutzer
* @return bool true, wenn erfolgreich gelöscht, sonst false
*/
public function delete(string $password): bool
{
if(!$this->isPasswordCorrect($password)) {
return false;
}
if(!$this->logout()) {
return false;
}
$file = fopen(self::$userdataDirectory . self::$userdataFile, "r");
if(!$file) {
return false;
}
$newCsv = array();
while (($data = fgetcsv($file, 300)) !== false) {
if (count($data) != 2) {
continue;
}
if ($data[0] !== $this->username) {
$newCsv[] = $data;
}
}
fclose($file);
$file = fopen(self::$userdataDirectory . self::$userdataFile, "w");
if(!$file) {
return false;
}
foreach ($newCsv as $newCsvData) {
fputcsv($file, $newCsvData);
}
fclose($file);
return true;
}
/** /**
* Prüft, ob ein Passwort für diesen Benutzer korrekt ist * Prüft, ob ein Passwort für diesen Benutzer korrekt ist
* @param string $password Zu prüfendes Passwort * @param string $password Zu prüfendes Passwort