mirror of
https://github.com/lennart-k/rustical.git
synced 2025-12-14 01:12:24 +00:00
Add option to disable frontend
This commit is contained in:
@@ -1,9 +1,15 @@
|
|||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
fn default_enabled() -> bool {
|
||||||
|
true
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize, Debug, Clone)]
|
#[derive(Deserialize, Serialize, Debug, Clone)]
|
||||||
#[serde(deny_unknown_fields)]
|
#[serde(deny_unknown_fields)]
|
||||||
pub struct FrontendConfig {
|
pub struct FrontendConfig {
|
||||||
#[serde(serialize_with = "hex::serde::serialize")]
|
#[serde(serialize_with = "hex::serde::serialize")]
|
||||||
#[serde(deserialize_with = "hex::serde::deserialize")]
|
#[serde(deserialize_with = "hex::serde::deserialize")]
|
||||||
pub secret_key: [u8; 64],
|
pub secret_key: [u8; 64],
|
||||||
|
#[serde(default = "default_enabled")]
|
||||||
|
pub enabled: bool,
|
||||||
}
|
}
|
||||||
|
|||||||
29
src/app.rs
29
src/app.rs
@@ -23,7 +23,7 @@ pub fn make_app<AS: AddressbookStore, CS: CalendarStore, S: SubscriptionStore>(
|
|||||||
Error = actix_web::Error,
|
Error = actix_web::Error,
|
||||||
>,
|
>,
|
||||||
> {
|
> {
|
||||||
App::new()
|
let mut app = App::new()
|
||||||
// .wrap(Logger::new("[%s] %r"))
|
// .wrap(Logger::new("[%s] %r"))
|
||||||
.wrap(TracingLogger::default())
|
.wrap(TracingLogger::default())
|
||||||
.wrap(NormalizePath::trim())
|
.wrap(NormalizePath::trim())
|
||||||
@@ -50,15 +50,20 @@ pub fn make_app<AS: AddressbookStore, CS: CalendarStore, S: SubscriptionStore>(
|
|||||||
.configure(|cfg| {
|
.configure(|cfg| {
|
||||||
rustical_carddav::configure_well_known(cfg, "/carddav".to_string())
|
rustical_carddav::configure_well_known(cfg, "/carddav".to_string())
|
||||||
}),
|
}),
|
||||||
)
|
);
|
||||||
.service(web::scope("/frontend").configure(|cfg| {
|
|
||||||
configure_frontend(
|
if frontend_config.enabled {
|
||||||
cfg,
|
app = app
|
||||||
auth_provider.clone(),
|
.service(web::scope("/frontend").configure(|cfg| {
|
||||||
cal_store.clone(),
|
configure_frontend(
|
||||||
addr_store.clone(),
|
cfg,
|
||||||
frontend_config,
|
auth_provider.clone(),
|
||||||
)
|
cal_store.clone(),
|
||||||
}))
|
addr_store.clone(),
|
||||||
.service(web::redirect("/", "/frontend").see_other())
|
frontend_config,
|
||||||
|
)
|
||||||
|
}))
|
||||||
|
.service(web::redirect("/", "/frontend").see_other());
|
||||||
|
}
|
||||||
|
app
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ pub fn cmd_gen_config(_args: GenConfigArgs) -> anyhow::Result<()> {
|
|||||||
tracing: TracingConfig::default(),
|
tracing: TracingConfig::default(),
|
||||||
frontend: FrontendConfig {
|
frontend: FrontendConfig {
|
||||||
secret_key: generate_frontend_secret(),
|
secret_key: generate_frontend_secret(),
|
||||||
|
enabled: true,
|
||||||
},
|
},
|
||||||
dav_push: DavPushConfig::default(),
|
dav_push: DavPushConfig::default(),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -47,7 +47,7 @@ pub struct TracingConfig {
|
|||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
#[serde(deny_unknown_fields, default)]
|
#[serde(deny_unknown_fields, default)]
|
||||||
pub struct DavPushConfig {
|
pub struct DavPushConfig {
|
||||||
pub enable: bool,
|
pub enabled: bool,
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
// Allowed Push servers, accepts any by default
|
// Allowed Push servers, accepts any by default
|
||||||
// Specify as URL origins
|
// Specify as URL origins
|
||||||
@@ -57,7 +57,7 @@ pub struct DavPushConfig {
|
|||||||
impl Default for DavPushConfig {
|
impl Default for DavPushConfig {
|
||||||
fn default() -> Self {
|
fn default() -> Self {
|
||||||
Self {
|
Self {
|
||||||
enable: true,
|
enabled: true,
|
||||||
allowed_push_servers: None,
|
allowed_push_servers: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ async fn main() -> Result<()> {
|
|||||||
let (addr_store, cal_store, subscription_store, update_recv) =
|
let (addr_store, cal_store, subscription_store, update_recv) =
|
||||||
get_data_stores(!args.no_migrations, &config.data_store).await?;
|
get_data_stores(!args.no_migrations, &config.data_store).await?;
|
||||||
|
|
||||||
if config.dav_push.enable {
|
if config.dav_push.enabled {
|
||||||
tokio::spawn(push_notifier(
|
tokio::spawn(push_notifier(
|
||||||
config.dav_push.allowed_push_servers,
|
config.dav_push.allowed_push_servers,
|
||||||
update_recv,
|
update_recv,
|
||||||
|
|||||||
Reference in New Issue
Block a user