diff options
author | Katharina Fey <kookie@spacekookie.de> | 2018-07-10 20:47:13 +0200 |
---|---|---|
committer | Katharina Fey <kookie@spacekookie.de> | 2018-07-10 20:47:13 +0200 |
commit | e1e9c73476ba2792c3582ee7ecd14d0b39c3eef4 (patch) | |
tree | 39237e46485669260da5038cb011d8382f879a7a /lockchain-core/src/users/mod.rs | |
parent | 7dfaacb94c8e4a37fb68fcaa7435c8cc8a08e7f9 (diff) |
Adding an example of how to register a user and adding new metadata
vault endpoints functions
Diffstat (limited to '')
-rw-r--r-- | lockchain-core/src/users/mod.rs | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/lockchain-core/src/users/mod.rs b/lockchain-core/src/users/mod.rs index a5cf79e..630e2a8 100644 --- a/lockchain-core/src/users/mod.rs +++ b/lockchain-core/src/users/mod.rs @@ -21,7 +21,10 @@ pub use errors::AuthError; use crypto::{encoding, hashing, random}; use std::collections::HashMap; -use {meta::MetaDomain, traits::AutoEncoder}; +use { + meta::MetaDomain, + traits::{AutoEncoder, Base64AutoEncoder}, +}; /// Specifies access to a resource #[derive(Hash, Serialize, Deserialize, Clone, PartialEq, Eq)] @@ -115,6 +118,11 @@ impl UserStore { pub fn get_all(&self) -> &HashMap<String, User> { &self.users } + + pub fn add(&mut self, user: User) -> Option<()> { + self.users.insert(user.name.clone(), user); + Some(()) + } } impl Default for UserStore { @@ -141,7 +149,7 @@ impl From<MetaDomain> for UserStore { ( k.clone(), match v { - ::Payload::Text(s) => User::decode(s).unwrap(), + ::Payload::Text(s) => User::decode(&String::from_base64(s)).unwrap(), _ => unreachable!(), }, ) @@ -156,7 +164,12 @@ impl From<UserStore> for MetaDomain { MetaDomain::new("userstore").fill( us.users .iter() - .map(|(name, user)| (name.clone(), ::Payload::Text(user.encode().unwrap()))) + .map(|(name, user)| { + ( + name.clone(), + ::Payload::Text(user.encode().unwrap().to_base64()), + ) + }) .collect(), ) } |