From 47c6fae79f59d6d35c23435e6b8675e3e3428645 Mon Sep 17 00:00:00 2001 From: Emii Tatsuo Date: Thu, 26 Nov 2020 21:04:02 -0500 Subject: [PATCH] Expose user manager in request --- src/types/request.rs | 8 ++++++++ src/user_management/manager.rs | 6 +++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/types/request.rs b/src/types/request.rs index 96363e1..a914a76 100644 --- a/src/types/request.rs +++ b/src/types/request.rs @@ -126,6 +126,14 @@ impl Request { { Ok(self.manager.get_user(self.certificate())?) } + + #[cfg(feature="user_management")] + /// Expose the server's UserManager + /// + /// Can be used to query users, or directly access the database + pub fn user_manager(&self) -> &UserManager { + &self.manager + } } impl ops::Deref for Request { diff --git a/src/user_management/manager.rs b/src/user_management/manager.rs index d9df8e1..61035d9 100644 --- a/src/user_management/manager.rs +++ b/src/user_management/manager.rs @@ -26,7 +26,7 @@ struct CertificateDef(Vec); /// /// Wraps a [`sled::Db`] pub struct UserManager { - db: sled::Db, + pub db: sled::Db, pub (crate) users: sled::Tree, // user_id:String maps to data:UserData pub (crate) certificates: sled::Tree, // certificate:u64 maps to data:CertificateData } @@ -40,8 +40,8 @@ impl UserManager { pub fn new(dir: impl AsRef) -> Result { let db = sled::open(dir)?; Ok(Self { - users: db.open_tree("users")?, - certificates: db.open_tree("certificates")?, + users: db.open_tree("gay.emii.kochab.users")?, + certificates: db.open_tree("gay.emii.kochab.certificates")?, db, }) }