recude probability to lock people out; Fixes #45
This commit is contained in:
parent
a84589aceb
commit
5c72e88a40
@ -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}"
|
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"
|
new_pw_for_user: "Neues Passwort für %{user} setzen"
|
||||||
pw_set: "Passwort erfolgreich gesetzt"
|
pw_set: "Passwort erfolgreich gesetzt"
|
||||||
|
cant_delete_last_admin: "Du kannst den letzten Admin nicht löschen"
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
use super::generate_random_alphanumeric;
|
use super::generate_random_alphanumeric;
|
||||||
use crate::{AppState, auth::User};
|
use crate::{auth::User, AppState};
|
||||||
use argon2::password_hash::rand_core::OsRng;
|
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 axum::Router;
|
||||||
use sqlx::SqlitePool;
|
use sqlx::SqlitePool;
|
||||||
|
|
||||||
@ -82,6 +82,10 @@ impl User {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async fn delete(&self, db: &SqlitePool) -> Result<(), String> {
|
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)
|
sqlx::query!("DELETE FROM user WHERE id = ?", self.id)
|
||||||
.execute(db)
|
.execute(db)
|
||||||
.await
|
.await
|
||||||
|
Loading…
x
Reference in New Issue
Block a user