makes zk available inside the auth-controller with config coming from the cli, it compiles

This commit is contained in:
Tamo 2023-08-02 13:17:40 +02:00
parent dc38da95c4
commit 97e3dfd99d
7 changed files with 44 additions and 13 deletions

View file

@ -24,4 +24,4 @@ sha2 = "0.10.6"
thiserror = "1.0.40"
time = { version = "0.3.20", features = ["serde-well-known", "formatting", "parsing", "macros"] }
uuid = { version = "1.3.1", features = ["serde", "v4"] }
zookeeper-client = "0.4.0"
zookeeper-client = "0.4.0"

View file

@ -16,22 +16,28 @@ pub use store::open_auth_store_env;
use store::{generate_key_as_hexa, HeedAuthStore};
use time::OffsetDateTime;
use uuid::Uuid;
use zookeeper_client as zk;
#[derive(Clone)]
pub struct AuthController {
store: Arc<HeedAuthStore>,
master_key: Option<String>,
zk: Option<zk::Client>,
}
impl AuthController {
pub fn new(db_path: impl AsRef<Path>, master_key: &Option<String>) -> Result<Self> {
pub fn new(
db_path: impl AsRef<Path>,
master_key: &Option<String>,
zk: Option<zk::Client>,
) -> Result<Self> {
let store = HeedAuthStore::new(db_path)?;
if store.is_empty()? {
generate_default_keys(&store)?;
}
Ok(Self { store: Arc::new(store), master_key: master_key.clone() })
Ok(Self { store: Arc::new(store), master_key: master_key.clone(), zk })
}
/// Return `Ok(())` if the auth controller is able to access one of its database.