diff --git a/src/api/server.rs b/src/api/server.rs index d1f87135..07542921 100644 --- a/src/api/server.rs +++ b/src/api/server.rs @@ -8,7 +8,7 @@ use std::sync::Arc; use std::collections::HashMap; use failure::*; -use serde_json::{Value}; +use serde_json::{json, Value}; use url::form_urlencoded; use futures::future::{self, Either}; @@ -202,6 +202,57 @@ fn handle_sync_api_request( Box::new(resp) } +fn get_index() -> BoxFut { + + let nodename = "unknown"; + let username = ""; + let token = "abc"; + + let setup = json!({ + "Setup": { "auth_cookie_name": "PBSAuthCookie" }, + "NodeName": nodename, + "UserName": username, + "CSRFPreventionToken": token + }); + + let index = format!(r###" + + + + + + + Proxmox Backup Server + + + + + + + + + + + + + + + + +
+ +
+ + +"###, setup.to_string()); + + Box::new(future::ok(Response::new(index.into()))) +} + fn simple_static_file_download(filename: PathBuf) -> BoxFut { Box::new(File::open(filename) @@ -296,8 +347,12 @@ pub fn handle_request(api: Arc, req: Request) -> BoxFut { } else { // not Auth for accessing files! - let filename = api.find_alias(&components); - return handle_static_file_download(filename); + if comp_len == 0 { + return get_index(); + } else { + let filename = api.find_alias(&components); + return handle_static_file_download(filename); + } } Box::new(future::err(http_err!(NOT_FOUND, "Path not found.".to_string())))