aboutsummaryrefslogtreecommitdiff
path: root/lockchain-core/src/users/userstore.rs
diff options
context:
space:
mode:
Diffstat (limited to 'lockchain-core/src/users/userstore.rs')
-rw-r--r--lockchain-core/src/users/userstore.rs17
1 files changed, 11 insertions, 6 deletions
diff --git a/lockchain-core/src/users/userstore.rs b/lockchain-core/src/users/userstore.rs
index 5355cdb..51d78a8 100644
--- a/lockchain-core/src/users/userstore.rs
+++ b/lockchain-core/src/users/userstore.rs
@@ -1,7 +1,6 @@
//! Merging `KeyStore` and `Userstore` into the same concept
use super::rights::Access;
-use crypto::Key;
use std::collections::HashMap;
use traits::AutoEncoder;
@@ -18,7 +17,7 @@ pub struct UserStore {
#[derive(Serialize, Deserialize)]
pub struct StoreUser {
name: String,
- keys: HashMap<Access, Key>,
+ keys: HashMap<Access, Vec<u8>>,
}
impl AutoEncoder for UserStore {}
@@ -34,7 +33,7 @@ impl UserStore {
}
}
/// Adds a new user to the store, with a root-key
- pub fn add_user(&mut self, name: String, key: Key) {
+ pub fn add_user(&mut self, name: String, key: Vec<u8>) {
let mut user = StoreUser {
name: name.clone(),
keys: HashMap::new(),
@@ -47,7 +46,7 @@ impl UserStore {
self.store.remove(name);
}
/// Add a key to an existing user
- pub fn add_key(&mut self, user: String, k: Key, access: Access) {
+ pub fn add_key(&mut self, user: String, k: Vec<u8>, access: Access) {
if !self.store.contains_key(&user) {
return;
}
@@ -55,7 +54,13 @@ impl UserStore {
self.store.get_mut(&user).unwrap().keys.insert(access, k);
}
- pub fn get_key(&self, user: String, access: Access) -> Option<&Key> {
- self.store.get(&user).map_or(None, |u| u.keys.get(&access))
+ pub fn get_root_key(&self, user: &str) -> Option<&Vec<u8>> {
+ self.store
+ .get(user)
+ .map_or(None, |u| u.keys.get(&Access::Root))
+ }
+
+ pub fn get_key(&self, user: &str, access: Access) -> Option<&Vec<u8>> {
+ self.store.get(user).map_or(None, |u| u.keys.get(&access))
}
}