From 42e06fc5ca6f5b33171b33ece3d09402e24c2e0c Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Sun, 27 Jan 2019 10:42:45 +0100 Subject: [PATCH] RpcEnvironment: implement set_user() and get_user() --- src/server/environment.rs | 10 ++++++++++ src/server/rest.rs | 4 +++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/server/environment.rs b/src/server/environment.rs index 7345cc8d..2d6103f8 100644 --- a/src/server/environment.rs +++ b/src/server/environment.rs @@ -6,12 +6,14 @@ use serde_json::Value; pub struct RestEnvironment { env_type: RpcEnvironmentType, result_attributes: HashMap, + user: Option, } impl RestEnvironment { pub fn new(env_type: RpcEnvironmentType) -> Self { Self { result_attributes: HashMap::new(), + user: None, env_type, } } @@ -30,4 +32,12 @@ impl RpcEnvironment for RestEnvironment { fn env_type(&self) -> RpcEnvironmentType { self.env_type } + + fn set_user(&mut self, user: Option) { + self.user = user; + } + + fn get_user(&self) -> Option { + self.user.clone() + } } diff --git a/src/server/rest.rs b/src/server/rest.rs index eb938c53..ccadae47 100644 --- a/src/server/rest.rs +++ b/src/server/rest.rs @@ -397,7 +397,7 @@ pub fn handle_request(api: Arc, req: Request) -> BoxFut { println!("REQUEST {} {}", method, path); println!("COMPO {:?}", components); - let rpcenv = RestEnvironment::new(RpcEnvironmentType::PRIVILEDGED); + let mut rpcenv = RestEnvironment::new(RpcEnvironmentType::PRIVILEDGED); if comp_len >= 1 && components[0] == "api2" { println!("GOT API REQUEST"); @@ -414,6 +414,8 @@ pub fn handle_request(api: Arc, req: Request) -> BoxFut { let mut uri_param = HashMap::new(); // fixme: handle auth + rpcenv.set_user(Some(String::from("root@pam"))); + match api.find_method(&components[2..], method, &mut uri_param) { MethodDefinition::None => {} MethodDefinition::Simple(api_method) => {