server: Add http_url to the configuration

This commit is contained in:
Valentin Tolmer 2021-11-21 18:30:24 +01:00 committed by nitnelave
parent a13bfc3575
commit db2b5cbae0
3 changed files with 14 additions and 0 deletions

View file

@ -10,6 +10,9 @@
## administration. ## administration.
#http_port = 17170 #http_port = 17170
## The public URL of the server, for password reset links.
#http_url = "http://localhost"
## Random secret for JWT signature. ## Random secret for JWT signature.
## This secret should be random, and should be shared with application ## This secret should be random, and should be shared with application
## servers that need to consume the JWTs. ## servers that need to consume the JWTs.

View file

@ -10,6 +10,7 @@ pub struct CLIOpts {
pub command: Command, pub command: Command,
} }
#[allow(clippy::large_enum_variant)]
#[derive(Debug, Clap, Clone)] #[derive(Debug, Clap, Clone)]
pub enum Command { pub enum Command {
/// Export the GraphQL schema to *.graphql. /// Export the GraphQL schema to *.graphql.
@ -56,6 +57,10 @@ pub struct RunOpts {
#[clap(long, env = "LLDAP_HTTP_PORT")] #[clap(long, env = "LLDAP_HTTP_PORT")]
pub http_port: Option<u16>, pub http_port: Option<u16>,
/// URL of the server, for password reset links.
#[clap(long, env = "LLDAP_HTTP_URL")]
pub http_url: Option<String>,
#[clap(flatten)] #[clap(flatten)]
pub smtp_opts: SmtpOpts, pub smtp_opts: SmtpOpts,
} }

View file

@ -64,6 +64,8 @@ pub struct Configuration {
pub key_file: String, pub key_file: String,
#[builder(default)] #[builder(default)]
pub smtp_options: MailOptions, pub smtp_options: MailOptions,
#[builder(default = r#"String::from("http://localhost")"#)]
pub http_url: String,
#[serde(skip)] #[serde(skip)]
#[builder(field(private), setter(strip_option))] #[builder(field(private), setter(strip_option))]
server_setup: Option<ServerSetup>, server_setup: Option<ServerSetup>,
@ -152,6 +154,10 @@ impl ConfigOverrider for RunOpts {
if let Some(port) = self.http_port { if let Some(port) = self.http_port {
config.http_port = port; config.http_port = port;
} }
if let Some(url) = self.http_url.as_ref() {
config.http_url = url.to_string();
}
self.smtp_opts.override_config(config); self.smtp_opts.override_config(config);
} }
} }