Authenticate using registry - part 1

This commit is contained in:
mdecimus
2026-02-04 17:55:16 +01:00
parent c6495f6fed
commit 0af735540d
34 changed files with 670 additions and 587 deletions

View File

@@ -9,7 +9,10 @@ use crate::{
backend::{ldap::LdapDirectory, oidc::OpenIdDirectory, sql::SqlDirectory},
};
use ahash::AHashMap;
use registry::schema::structs;
use registry::schema::{
prelude::Object,
structs::{self, Authentication},
};
use std::sync::Arc;
use store::registry::bootstrap::Bootstrap;
@@ -37,6 +40,22 @@ impl Directories {
}
}
Directories { directories }
let mut default_directory = None;
let auth = bp.setting_infallible::<Authentication>().await;
if let Some(id) = auth.directory_id {
if let Some(directory) = directories.get(&id) {
default_directory = Some(directory.clone());
} else {
bp.build_error(
Object::Authentication.singleton(),
format!("Default directory with id {} not found", id),
);
}
}
Directories {
default_directory,
directories,
}
}
}

View File

@@ -54,6 +54,7 @@ pub struct Group {
#[derive(Default, Clone, Debug)]
pub struct Directories {
pub default_directory: Option<Arc<Directory>>,
pub directories: AHashMap<Id, Arc<Directory>>,
}