feat(server): add tenant management, health checks, and database export/import APIs
This commit is contained in:
@@ -282,6 +282,27 @@ impl AuthEngine {
|
||||
.collect()
|
||||
}
|
||||
|
||||
pub fn list_users(&self) -> Vec<AuthenticatedUser> {
|
||||
let users = self.users.read().unwrap_or_else(|poisoned| poisoned.into_inner());
|
||||
let mut result: Vec<AuthenticatedUser> = users
|
||||
.values()
|
||||
.map(AuthUser::to_authenticated_user)
|
||||
.collect();
|
||||
result.sort_by(|a, b| a.database.cmp(&b.database).then(a.username.cmp(&b.username)));
|
||||
result
|
||||
}
|
||||
|
||||
pub fn drop_users_for_database(&self, database: &str) -> Result<usize, AuthError> {
|
||||
let mut users = self.users.write().unwrap_or_else(|poisoned| poisoned.into_inner());
|
||||
let before = users.len();
|
||||
users.retain(|_, user| user.database != database);
|
||||
let dropped = before.saturating_sub(users.len());
|
||||
if dropped > 0 {
|
||||
self.persist_locked(&users)?;
|
||||
}
|
||||
Ok(dropped)
|
||||
}
|
||||
|
||||
pub fn start_scram_sha256(
|
||||
&self,
|
||||
database: &str,
|
||||
|
||||
Reference in New Issue
Block a user