From d8f80c973159813a5937395a0f53c042b0c738c2 Mon Sep 17 00:00:00 2001 From: curly Date: Wed, 17 Jul 2024 16:28:00 -0600 Subject: make new keys with admin user --- src/db.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'src/db.rs') diff --git a/src/db.rs b/src/db.rs index 0c245cc..b173f2d 100644 --- a/src/db.rs +++ b/src/db.rs @@ -66,6 +66,10 @@ impl User { User { name, is_admin: admin, hashed_password, id, tokovec: base_tokens, sessions: HashMap::new() } } + pub fn is_admin(&self) -> bool { + self.is_admin + } + fn update_name(&mut self, new_name: String) { self.name = new_name; } @@ -298,6 +302,16 @@ impl DB { self.registration_keys.push(key.clone()) } + pub async fn new_registration_key(&mut self, id: UID, session: &String, key: &String) -> Result<(), String> { + let u = self.get_user_authenticated(id, session).await?; + if u.is_admin { + self.add_key(key); + self.save().await + } else { + Err("Not an admin".into()) + } + } + pub async fn new_user(&mut self, name: String, password: String, id: UID, key: &String) -> Result { if self.use_key(key).await.is_ok() { let mut is_admin = false; -- cgit v1.2.3