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