BasicOIDC/src/data/app_config.rs

45 lines
1.0 KiB
Rust
Raw Normal View History

use std::path::{Path, PathBuf};
2022-03-30 08:14:39 +00:00
use clap::Parser;
use crate::constants::USERS_LIST_FILE;
2022-03-30 08:14:39 +00:00
/// Basic OIDC provider
#[derive(Parser, Debug, Clone)]
2022-03-30 08:14:39 +00:00
#[clap(author, version, about, long_about = None)]
pub struct AppConfig {
2022-03-30 08:14:39 +00:00
/// Listen address
#[clap(short, long, env, default_value = "0.0.0.0:8000")]
pub listen_address: String,
/// Storage path
#[clap(short, long, env)]
pub storage_path: String,
2022-03-30 14:58:00 +00:00
/// App token token
#[clap(short, long, env, default_value = "")]
pub token_key: String,
/// Website origin
#[clap(short, long, env, default_value = "http://localhost:8000")]
pub website_origin: String,
/// Proxy IP, might end with a star "*"
#[clap(short, long, env)]
pub proxy_ip: Option<String>,
}
impl AppConfig {
pub fn secure_cookie(&self) -> bool {
self.website_origin.starts_with("https:")
}
pub fn storage_path(&self) -> &Path {
self.storage_path.as_ref()
}
pub fn users_file(&self) -> PathBuf {
2022-03-30 08:14:39 +00:00
self.storage_path().join(USERS_LIST_FILE)
}
2022-04-03 13:50:49 +00:00
}