RpcEnvironment: implement set_user() and get_user()
This commit is contained in:
parent
162b979394
commit
d7d23785f0
|
@ -18,6 +18,10 @@ pub trait RpcEnvironment {
|
||||||
fn get_result_attrib(&self, name: &str) -> Option<&Value>;
|
fn get_result_attrib(&self, name: &str) -> Option<&Value>;
|
||||||
|
|
||||||
fn env_type(&self) -> RpcEnvironmentType;
|
fn env_type(&self) -> RpcEnvironmentType;
|
||||||
|
|
||||||
|
fn set_user(&mut self, user: Option<String>);
|
||||||
|
|
||||||
|
fn get_user(&self) -> Option<String>;
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone)]
|
#[derive(Copy, Clone)]
|
||||||
|
|
|
@ -5,11 +5,15 @@ use serde_json::Value;
|
||||||
|
|
||||||
pub struct CliEnvironment {
|
pub struct CliEnvironment {
|
||||||
result_attributes: HashMap<String, Value>,
|
result_attributes: HashMap<String, Value>,
|
||||||
|
user: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl CliEnvironment {
|
impl CliEnvironment {
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
Self { result_attributes: HashMap::new() }
|
Self {
|
||||||
|
result_attributes: HashMap::new(),
|
||||||
|
user: None,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -27,4 +31,11 @@ impl RpcEnvironment for CliEnvironment {
|
||||||
RpcEnvironmentType::CLI
|
RpcEnvironmentType::CLI
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn set_user(&mut self, user: Option<String>) {
|
||||||
|
self.user = user;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_user(&self) -> Option<String> {
|
||||||
|
self.user.clone()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,12 +6,14 @@ use serde_json::Value;
|
||||||
pub struct RestEnvironment {
|
pub struct RestEnvironment {
|
||||||
env_type: RpcEnvironmentType,
|
env_type: RpcEnvironmentType,
|
||||||
result_attributes: HashMap<String, Value>,
|
result_attributes: HashMap<String, Value>,
|
||||||
|
user: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl RestEnvironment {
|
impl RestEnvironment {
|
||||||
pub fn new(env_type: RpcEnvironmentType) -> Self {
|
pub fn new(env_type: RpcEnvironmentType) -> Self {
|
||||||
Self {
|
Self {
|
||||||
result_attributes: HashMap::new(),
|
result_attributes: HashMap::new(),
|
||||||
|
user: None,
|
||||||
env_type,
|
env_type,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,4 +32,12 @@ impl RpcEnvironment for RestEnvironment {
|
||||||
fn env_type(&self) -> RpcEnvironmentType {
|
fn env_type(&self) -> RpcEnvironmentType {
|
||||||
self.env_type
|
self.env_type
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn set_user(&mut self, user: Option<String>) {
|
||||||
|
self.user = user;
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_user(&self) -> Option<String> {
|
||||||
|
self.user.clone()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -397,7 +397,7 @@ pub fn handle_request(api: Arc<ApiConfig>, req: Request<Body>) -> BoxFut {
|
||||||
println!("REQUEST {} {}", method, path);
|
println!("REQUEST {} {}", method, path);
|
||||||
println!("COMPO {:?}", components);
|
println!("COMPO {:?}", components);
|
||||||
|
|
||||||
let rpcenv = RestEnvironment::new(RpcEnvironmentType::PRIVILEDGED);
|
let mut rpcenv = RestEnvironment::new(RpcEnvironmentType::PRIVILEDGED);
|
||||||
|
|
||||||
if comp_len >= 1 && components[0] == "api2" {
|
if comp_len >= 1 && components[0] == "api2" {
|
||||||
println!("GOT API REQUEST");
|
println!("GOT API REQUEST");
|
||||||
|
@ -414,6 +414,8 @@ pub fn handle_request(api: Arc<ApiConfig>, req: Request<Body>) -> BoxFut {
|
||||||
let mut uri_param = HashMap::new();
|
let mut uri_param = HashMap::new();
|
||||||
|
|
||||||
// fixme: handle auth
|
// fixme: handle auth
|
||||||
|
rpcenv.set_user(Some(String::from("root@pam")));
|
||||||
|
|
||||||
match api.find_method(&components[2..], method, &mut uri_param) {
|
match api.find_method(&components[2..], method, &mut uri_param) {
|
||||||
MethodDefinition::None => {}
|
MethodDefinition::None => {}
|
||||||
MethodDefinition::Simple(api_method) => {
|
MethodDefinition::Simple(api_method) => {
|
||||||
|
|
Loading…
Reference in New Issue