feat: implement admin account disable functionality

This commit is contained in:
ispik
2026-04-11 14:00:50 +03:00
parent 26faa18d6e
commit 6e78f0b9c0
6 changed files with 89 additions and 8 deletions

View File

@@ -3,6 +3,7 @@ mod mongodb;
mod reference;
use authifier::config::Captcha;
use authifier::config::EmailExpiryConfig;
use authifier::config::EmailVerificationConfig;
use authifier::config::PasswordScanning;
use authifier::config::ResolveIp;
@@ -10,10 +11,10 @@ use authifier::config::SMTPSettings;
use authifier::config::Shield;
use authifier::config::Template;
use authifier::config::Templates;
use authifier::config::EmailExpiryConfig;
use authifier::Authifier;
use rand::Rng;
use revolt_config::config;
use revolt_result::Result;
#[cfg(feature = "mongodb")]
pub use self::mongodb::*;
@@ -251,4 +252,22 @@ impl Database {
event_channel: None,
}
}
pub async fn disable_authifier_account(&self, user_id: &str) -> Result<()> {
let auth = self.clone().to_authifier().await;
let mut account = auth
.database
.find_account(user_id)
.await
.map_err(|_| create_database_error!("find_account", "accounts"))?;
account.disabled = true;
auth.database
.save_account(&account)
.await
.map_err(|_| create_database_error!("save_account", "accounts"))?;
Ok(())
}
}