recude probability to lock people out; Fixes #45
All checks were successful
CI/CD Pipeline / test (push) Successful in 13m1s
CI/CD Pipeline / deploy (push) Successful in 6m11s

This commit is contained in:
Philipp Hofer 2025-04-22 13:10:08 +02:00
parent a84589aceb
commit 5c72e88a40
2 changed files with 7 additions and 2 deletions

View File

@ -178,6 +178,7 @@ cant_update_pw_if_already_existing_for_user: "Kann kein neues Passwort für %{us
cant_update_pw_with_wrong_code: "Falscher Code zum Setzen eines neuen Passworts für %{user}"
new_pw_for_user: "Neues Passwort für %{user} setzen"
pw_set: "Passwort erfolgreich gesetzt"
cant_delete_last_admin: "Du kannst den letzten Admin nicht löschen"
#

View File

@ -1,7 +1,7 @@
use super::generate_random_alphanumeric;
use crate::{AppState, auth::User};
use crate::{auth::User, AppState};
use argon2::password_hash::rand_core::OsRng;
use argon2::{Argon2, PasswordHasher, password_hash::SaltString};
use argon2::{password_hash::SaltString, Argon2, PasswordHasher};
use axum::Router;
use sqlx::SqlitePool;
@ -82,6 +82,10 @@ impl User {
}
async fn delete(&self, db: &SqlitePool) -> Result<(), String> {
let users = User::all(db).await;
if users.len() == 1 {
return Err(t!("cant_delete_last_admin").into());
}
sqlx::query!("DELETE FROM user WHERE id = ?", self.id)
.execute(db)
.await