diff options
author | Katharina Fey <kookie@spacekookie.de> | 2018-09-08 23:51:03 +0200 |
---|---|---|
committer | Katharina Fey <kookie@spacekookie.de> | 2018-09-08 23:51:03 +0200 |
commit | 306c1e56b0dc457b59c47693c62fcab668398020 (patch) | |
tree | 3e1072ec1a5832b9c0f0f9105ee9d9115aada07e | |
parent | c352fd1c6b5b7119dfa9cc8eb642aa3ee7127a01 (diff) |
Starting work on the lockchain-core --> lockchain-files userstore mapper
-rw-r--r-- | lockchain-core/src/users/mod.rs | 3 | ||||
-rw-r--r-- | lockchain-files/src/lib.rs | 8 | ||||
-rw-r--r-- | lockchain-files/src/userstore.rs | 15 |
3 files changed, 23 insertions, 3 deletions
diff --git a/lockchain-core/src/users/mod.rs b/lockchain-core/src/users/mod.rs index 5fe1601..4086fac 100644 --- a/lockchain-core/src/users/mod.rs +++ b/lockchain-core/src/users/mod.rs @@ -19,11 +19,12 @@ mod rights; mod tokens; mod secrets; -pub mod userstore; +mod userstore; pub use self::auth::pam_authenticate; pub use self::tokens::Token; pub use self::user::User; +pub use self::userstore::UserStore; pub use errors::AuthError; pub use self::rights::{Access, Role}; diff --git a/lockchain-files/src/lib.rs b/lockchain-files/src/lib.rs index af7271e..a7941e9 100644 --- a/lockchain-files/src/lib.rs +++ b/lockchain-files/src/lib.rs @@ -57,17 +57,19 @@ extern crate serde; use lcc::traits::{Body, LoadRecord, Vault}; use lcc::{ errors::VaultError, - users::{Access, Token}, + users::{Access, Token, UserStore}, Generator, MetaDomain, Payload, Record, VaultMetadata, }; use std::collections::HashMap; mod config; mod fs; +mod userstore; mod utils; pub use config::{ConfigError, VaultConfig}; use fs::{FileType, Filesystem}; +use userstore::UserStoreMapper; /// Persistence mapper to a folder and file structure /// @@ -85,13 +87,13 @@ use fs::{FileType, Filesystem}; /// /// The vault folder is safe to copy around – /// all vault metadata is kept inside it. -#[derive(Debug)] pub struct DataVault<T: Body> { meta_info: (String, String), config: VaultConfig, records: HashMap<String, Record<T>>, metadata: HashMap<String, MetaDomain>, fs: Filesystem, + users: UserStoreMapper, } impl<T: Body> DataVault<T> { @@ -126,6 +128,7 @@ impl<T: Body> Vault<T> for DataVault<T> { config: VaultConfig::new(), metadata: HashMap::new(), fs: Filesystem::new(&gen.location.unwrap(), &gen.name.unwrap()), + users: UserStoreMapper::new(UserStore::new()), }.initialize(), )) } @@ -154,6 +157,7 @@ impl<T: Body> Vault<T> for DataVault<T> { config: VaultConfig::new(), metadata: HashMap::new(), fs: Filesystem::new(location, name), + users: UserStoreMapper::new(UserStore::new()), }.load() } diff --git a/lockchain-files/src/userstore.rs b/lockchain-files/src/userstore.rs new file mode 100644 index 0000000..1d01db6 --- /dev/null +++ b/lockchain-files/src/userstore.rs @@ -0,0 +1,15 @@ +//! This module maps the lockchain internal `UserStore` into a +//! structure that can be saved to disk. + +use lcc::users::UserStore; + +#[derive(Debug)] +pub struct UserStoreMapper { + inner: UserStore, +} + +impl UserStoreMapper { + pub fn new(store: UserStore) -> Store { + Self { inner: store } + } +} |