config rework

This commit is contained in:
Reid 2023-10-17 17:19:50 -07:00
parent 6e7550927f
commit 7024a1fa28
Signed by: reidlab
GPG key ID: 6C9EAA3364F962C8
8 changed files with 49 additions and 70 deletions

View file

@ -7,7 +7,7 @@ use diesel::result::Error;
use password_auth::generate_hash;
use crate::CONFIG;
use crate::config;
use crate::helpers;
use crate::db;
@ -22,7 +22,7 @@ pub struct FormRegisterAccount {
pub fn register_account(input: Form<FormRegisterAccount>) -> status::Custom<&'static str> {
let connection = &mut db::establish_connection_pg();
if CONFIG.accounts.allow_registration == false {
if config::config_get_with_default("accounts.allow_registration", true) == false {
return status::Custom(Status::Ok, "-1")
}
@ -55,7 +55,7 @@ pub fn register_account(input: Form<FormRegisterAccount>) -> status::Custom<&'st
use crate::schema::accounts::dsl::*;
let account_name_usage = accounts.filter(username.eq(input.userName.clone())).count().get_result::<i64>(connection) as Result<i64, Error>;
let account_name_used = account_name_usage.expect("Fatal database name query error") != 0;
let account_name_used = account_name_usage.expect("database name query error") != 0;
if account_name_used {
return status::Custom(Status::Ok, "-2")
}
@ -70,7 +70,7 @@ pub fn register_account(input: Form<FormRegisterAccount>) -> status::Custom<&'st
inserted_account = diesel::insert_into(accounts)
.values(&new_account)
.get_result::<Account, >(connection)
.expect("Fatal error saving the new account");
.expect("error saving the new account");
}
// user management
@ -88,7 +88,7 @@ pub fn register_account(input: Form<FormRegisterAccount>) -> status::Custom<&'st
diesel::insert_into(users)
.values(&new_user)
.get_result::<User, >(connection)
.expect("Fatal error saving the new user");
.expect("error saving the new user");
}
return status::Custom(Status::Ok, "1")

View file

@ -13,6 +13,7 @@ use std::fs;
use std::io::prelude::*;
use crate::helpers;
use crate::config;
use crate::db;
#[derive(FromForm)]
@ -98,7 +99,7 @@ pub fn download_level(input: Form<FormDownloadLevel>) -> status::Custom<&'static
xor_pass = level.password.clone().unwrap_or(String::from("0"));
}
let compressed_level_data = fs::read(format!("{}/{}/{}.lvl", crate::CONFIG.db.data_folder, "levels", level.id)).expect("couldnt read level file");
let compressed_level_data = fs::read(format!("{}/{}/{}.lvl", config::config_get_with_default("db.data_folder", "data"), "levels", level.id)).expect("couldnt read level file");
let uncompressed_level_data = String::from_utf8(if compressed_level_data.starts_with(&[0x1F, 0x8B]) {
// gzip!!

View file

@ -8,7 +8,7 @@ use base64::{Engine as _, engine::general_purpose};
use std::fs;
use crate::config::CONFIG;
use crate::config;
use crate::helpers;
use crate::db;
@ -98,12 +98,12 @@ pub fn upload_level(input: Form<FormUploadLevel>) -> status::Custom<&'static str
}
// too many objects
if objects_val > CONFIG.levels.max_objects as usize {
if config::config_get_with_default("levels.max_objects", 0) != 0 && objects_val > config::config_get_with_default("levels.max_objects", 0) {
return status::Custom(Status::Ok, "-1")
}
// forbidden object checking
if let Some(_forbidden_object) = level_objects.iter().find(|obj| crate::CONFIG.levels.blocklist.contains(&obj.id())) {
if let Some(_forbidden_object) = level_objects.iter().find(|obj| config::config_get_with_default("levels.blocklist", Vec::new() as Vec<i32>).contains(&obj.id())) {
return status::Custom(Status::Ok, "-1")
}
@ -158,7 +158,7 @@ pub fn upload_level(input: Form<FormUploadLevel>) -> status::Custom<&'static str
.get_result::<Level, >(connection)
.expect("failed to update level");
fs::write(format!("{}/levels/{}.lvl", crate::CONFIG.db.data_folder, updated_level.id), general_purpose::URL_SAFE.decode(input.levelString.clone()).expect("user provided invalid level string")).expect("couldnt write level to file");
fs::write(format!("{}/levels/{}.lvl", config::config_get_with_default("db.data_folder", "data"), updated_level.id), general_purpose::URL_SAFE.decode(input.levelString.clone()).expect("user provided invalid level string")).expect("couldnt write level to file");
return status::Custom(Status::Ok, Box::leak(input.levelID.to_string().into_boxed_str()))
} else {
@ -194,7 +194,7 @@ pub fn upload_level(input: Form<FormUploadLevel>) -> status::Custom<&'static str
.get_result::<Level, >(connection)
.expect("failed to insert level");
fs::write(format!("{}/levels/{}.lvl", crate::CONFIG.db.data_folder, inserted_level.id), general_purpose::URL_SAFE.decode(input.levelString.clone()).expect("user provided invalid level string")).expect("couldnt write level to file");
fs::write(format!("{}/levels/{}.lvl", config::config_get_with_default("db.data_folder", "data"), inserted_level.id), general_purpose::URL_SAFE.decode(input.levelString.clone()).expect("user provided invalid level string")).expect("couldnt write level to file");
return status::Custom(Status::Ok, "1")
}