diff options
author | Curly Bryce <curlybryce@protonmail.com> | 2024-07-03 16:01:18 -0600 |
---|---|---|
committer | Curly Bryce <curlybryce@protonmail.com> | 2024-07-03 16:01:18 -0600 |
commit | 2ae652d150c451ec921eb08821a3f8d158297433 (patch) | |
tree | 140934960f7bff0ac2533a5b9e9cf57d54f51a86 /src/db.rs | |
parent | 723ea13a55af719a920b445d9c8cda0c2545c682 (diff) | |
download | poko_server-2ae652d150c451ec921eb08821a3f8d158297433.tar.gz poko_server-2ae652d150c451ec921eb08821a3f8d158297433.tar.bz2 poko_server-2ae652d150c451ec921eb08821a3f8d158297433.zip |
delete users
Diffstat (limited to 'src/db.rs')
-rw-r--r-- | src/db.rs | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -281,4 +281,25 @@ impl DB { let _ = self.save().await; r } + + pub async fn delete_user(&mut self, id: &String, session: &String) -> Result<String, String> { + match UID::from(id.clone()) { + Ok(n) => { + self.users = self.users.clone().into_iter().filter(|u| !u.authenticate(session) && n != u.id).collect(); + self.uid_generator.delete_uid(n); + }, + Err(n) => return Err(n) + }; + + // Validate + let r = match self.get_user(id).await { + Ok(_) => Err("Could not delete".into()), + Err(_) => { + Ok("Deleted".into()) + }, + }; + + let _ = self.save().await; + r + } } |