mirror of
https://github.com/dani-garcia/vaultwarden
synced 2024-12-14 09:33:44 +01:00
Save config
This commit is contained in:
parent
877408b808
commit
ade293cf52
2 changed files with 14 additions and 7 deletions
|
@ -98,7 +98,7 @@ impl AdminTemplateData {
|
||||||
Self {
|
Self {
|
||||||
users,
|
users,
|
||||||
page_content: String::from("admin/page"),
|
page_content: String::from("admin/page"),
|
||||||
config: serde_json::to_string_pretty(&CONFIG.get_config()).unwrap(),
|
config: CONFIG.get_config(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,6 +10,7 @@ lazy_static! {
|
||||||
println!("Error loading config:\n\t{:?}\n", e);
|
println!("Error loading config:\n\t{:?}\n", e);
|
||||||
exit(12)
|
exit(12)
|
||||||
});
|
});
|
||||||
|
pub static ref CONFIG_PATH: String = "data/config.json".into();
|
||||||
}
|
}
|
||||||
|
|
||||||
macro_rules! make_config {
|
macro_rules! make_config {
|
||||||
|
@ -86,7 +87,7 @@ macro_rules! make_config {
|
||||||
// TODO: Get config.json from CONFIG_PATH env var or -c <CONFIG> console option
|
// TODO: Get config.json from CONFIG_PATH env var or -c <CONFIG> console option
|
||||||
|
|
||||||
// Loading from file
|
// Loading from file
|
||||||
let mut builder = match ConfigBuilder::from_file("data/config.json") {
|
let mut builder = match ConfigBuilder::from_file(&CONFIG_PATH) {
|
||||||
Ok(builder) => builder,
|
Ok(builder) => builder,
|
||||||
Err(_) => ConfigBuilder::default()
|
Err(_) => ConfigBuilder::default()
|
||||||
};
|
};
|
||||||
|
@ -200,17 +201,23 @@ fn validate_config(cfg: &ConfigItems) -> Result<(), Error> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Config {
|
impl Config {
|
||||||
pub fn get_config(&self) -> ConfigItems {
|
pub fn get_config(&self) -> String {
|
||||||
self.inner.read().unwrap().config.clone()
|
let cfg = &self.inner.read().unwrap().config;
|
||||||
|
serde_json::to_string_pretty(cfg).unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn update_config(&self, other: ConfigBuilder) -> Result<(), Error> {
|
pub fn update_config(&self, other: ConfigBuilder) -> Result<(), Error> {
|
||||||
let config = other.build();
|
let config = other.build();
|
||||||
validate_config(&config)?;
|
validate_config(&config)?;
|
||||||
|
|
||||||
self.inner.write().unwrap().config = config;
|
let config_str = serde_json::to_string_pretty(&config)?;
|
||||||
|
|
||||||
// TODO: Save to file
|
self.inner.write().unwrap().config = config.clone();
|
||||||
|
|
||||||
|
//Save to file
|
||||||
|
use std::{fs::File, io::Write};
|
||||||
|
let mut file = File::create(&*CONFIG_PATH)?;
|
||||||
|
file.write_all(config_str.as_bytes())?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue