Add basic server config
This commit is contained in:
		@@ -1,7 +1,44 @@
 | 
			
		||||
use crate::app_config::AppConfig;
 | 
			
		||||
use actix_web::HttpResponse;
 | 
			
		||||
 | 
			
		||||
/// Serve robots.txt (disallow ranking)
 | 
			
		||||
pub async fn robots_txt() -> HttpResponse {
 | 
			
		||||
    HttpResponse::Ok()
 | 
			
		||||
        .content_type("text/plain")
 | 
			
		||||
        .body("User-agent: *\nDisallow: /\n")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive(serde::Serialize)]
 | 
			
		||||
pub struct ServerConstraints {
 | 
			
		||||
    // TODO
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl Default for ServerConstraints {
 | 
			
		||||
    fn default() -> Self {
 | 
			
		||||
        Self {
 | 
			
		||||
            // TODO
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive(serde::Serialize)]
 | 
			
		||||
struct ServerConfig {
 | 
			
		||||
    auth_disabled: bool,
 | 
			
		||||
    oidc_provider_name: &'static str,
 | 
			
		||||
    constraints: ServerConstraints,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl Default for ServerConfig {
 | 
			
		||||
    fn default() -> Self {
 | 
			
		||||
        Self {
 | 
			
		||||
            auth_disabled: AppConfig::get().is_auth_disabled(),
 | 
			
		||||
            oidc_provider_name: AppConfig::get().openid_provider().name,
 | 
			
		||||
            constraints: Default::default(),
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/// Get server static configuration
 | 
			
		||||
pub async fn config() -> HttpResponse {
 | 
			
		||||
    HttpResponse::Ok().json(ServerConfig::default())
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -49,7 +49,7 @@ async fn main() -> std::io::Result<()> {
 | 
			
		||||
 | 
			
		||||
    HttpServer::new(move || {
 | 
			
		||||
        let session_mw = SessionMiddleware::builder(redis_store.clone(), cookie_secret_key.clone())
 | 
			
		||||
            .cookie_name("matrixgw-session".to_string())
 | 
			
		||||
            .cookie_name("moneymgr-session".to_string())
 | 
			
		||||
            .session_lifecycle(SessionLifecycle::BrowserSession(Default::default()))
 | 
			
		||||
            .build();
 | 
			
		||||
 | 
			
		||||
@@ -72,6 +72,10 @@ async fn main() -> std::io::Result<()> {
 | 
			
		||||
            .app_data(TempFileConfig::default().directory(&AppConfig::get().temp_dir))
 | 
			
		||||
            // Server controller
 | 
			
		||||
            .route("/robots.txt", web::get().to(server_controller::robots_txt))
 | 
			
		||||
            .route(
 | 
			
		||||
                "/api/server/config",
 | 
			
		||||
                web::get().to(server_controller::config),
 | 
			
		||||
            )
 | 
			
		||||
            // Auth controller
 | 
			
		||||
            .route(
 | 
			
		||||
                "/api/auth/start_oidc",
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user