From f4601e1840077ec5b219a4edc3531e85ac557aef Mon Sep 17 00:00:00 2001 From: Matthias Grief Date: Mon, 2 Dec 2024 13:54:15 +0100 Subject: [PATCH] =?UTF-8?q?L=C3=B6schen=20von=20User=20eingef=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- webseite/classes/User.php | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/webseite/classes/User.php b/webseite/classes/User.php index 84278fe..0608b41 100644 --- a/webseite/classes/User.php +++ b/webseite/classes/User.php @@ -99,6 +99,51 @@ class User 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 * @param string $password Zu prüfendes Passwort