aboutsummaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2023-12-26 22:37:29 +0100
committermetamuffin <metamuffin@disroot.org>2023-12-26 22:37:29 +0100
commitf0a1e6615c147f740ee1ec0bb6f06ca9e450cc98 (patch)
tree91f9c893f3eadf811d2626f4c6166f4ba38bdc22 /server/src
parent2ff2d07b5ed265d0f4ce095002484fe771e51dae (diff)
downloadjellything-f0a1e6615c147f740ee1ec0bb6f06ca9e450cc98.tar
jellything-f0a1e6615c147f740ee1ec0bb6f06ca9e450cc98.tar.bz2
jellything-f0a1e6615c147f740ee1ec0bb6f06ca9e450cc98.tar.zst
disable admin account by default for sane default config
Diffstat (limited to 'server/src')
-rw-r--r--server/src/main.rs47
1 files changed, 25 insertions, 22 deletions
diff --git a/server/src/main.rs b/server/src/main.rs
index d9ddf8b..acb8c87 100644
--- a/server/src/main.rs
+++ b/server/src/main.rs
@@ -5,12 +5,13 @@
*/
#![feature(lazy_cell)]
#![feature(int_roundings)]
+#![feature(let_chains)]
use crate::routes::ui::{account::hash_password, admin::log::enable_logging};
use database::Database;
-use jellybase::{CONF, federation::Federation};
+use jellybase::{federation::Federation, CONF};
use jellycommon::user::{PermissionSet, Theme, User};
-use log::{error, warn};
+use log::{error, warn, info};
use routes::build_rocket;
use tokio::fs::create_dir_all;
@@ -27,29 +28,31 @@ async fn main() {
let database = Database::open(&CONF.database_path).unwrap();
let federation = Federation::initialize();
- database
- .user
- .fetch_and_update(&CONF.admin_username, |admin| {
- Some(User {
- admin: true,
- name: CONF.admin_username.clone(),
- password: hash_password(&CONF.admin_username, &CONF.admin_password),
- ..admin.unwrap_or_else(|| User {
- name: Default::default(),
- display_name: "Admin".to_string(),
- password: Default::default(),
- admin: Default::default(),
- theme: Theme::Dark,
- permissions: PermissionSet::default(),
+ if let Some(username) = &CONF.admin_username
+ && let Some(password) = &CONF.admin_password
+ {
+ database
+ .user
+ .fetch_and_update(&username, |admin| {
+ Some(User {
+ admin: true,
+ name: username.clone(),
+ password: hash_password(&username, &password),
+ ..admin.unwrap_or_else(|| User {
+ name: Default::default(),
+ display_name: "Admin".to_string(),
+ password: Default::default(),
+ admin: Default::default(),
+ theme: Theme::Dark,
+ permissions: PermissionSet::default(),
+ })
})
})
- })
- .unwrap();
+ .unwrap();
+ } else {
+ info!("admin account disabled")
+ }
- // if let Err(err) = import::import(&database, &federation).await {
- // log::error!("import not sucessful: {err:?}")
- // }
-
let r = build_rocket(database, federation).launch().await;
match r {
Ok(_) => warn!("server shutdown"),