Skip to content
Snippets Groups Projects
Commit 0c2ba261 authored by echicken's avatar echicken :chicken:
Browse files

Change how settings are validated and defaults are applied.

parent 6e5535f5
No related branches found
No related tags found
No related merge requests found
load('sbbsdefs.js');
load('modopts.js'); load('modopts.js');
var settings = get_mod_options('web'); var settings = get_mod_options('web');
...@@ -22,48 +23,46 @@ settings.web_lib = backslash(settings.web_directory + 'lib/'); ...@@ -22,48 +23,46 @@ settings.web_lib = backslash(settings.web_directory + 'lib/');
settings.web_pages = backslash(fullpath(settings.web_root + '../pages')); settings.web_pages = backslash(fullpath(settings.web_root + '../pages'));
settings.web_sidebar = backslash(fullpath(settings.web_root + '../sidebar')); settings.web_sidebar = backslash(fullpath(settings.web_root + '../sidebar'));
// Guest var defaults = {
if (typeof settings.guest === 'undefined') settings.guest = 'Guest'; guest : {
if (system.matchuser(settings.guest) == 0) exit(); default : 'Guest',
test : function () {
// Timeout return system.matchuser(settings.guest) ? null : 'Guest account unavailable';
if (typeof settings.timeout !== 'number') settings.timeout = 43200;
// Registration
if (typeof settings.user_registration !== 'boolean') {
settings.user_registration = false;
} else {
if (typeof settings.minimum_password_length !== 'number') {
settings.minimum_password_length = 4;
}
if (typeof settings.email_validation !== 'boolean') {
settings.email_validation = true;
}
if (typeof settings.email_validation_level !== 'number') {
settings.email_validation_level = 50;
} }
},
} timeout : { default : 43200 },
user_registration : { default : false },
if (typeof settings.max_messages !== 'number' || settings.max_messages < 0) { minimum_password_length : { default : 4 },
settings.max_messages = 0; email_validation : { default : true },
email_validation_level : { default : 50 },
max_messages : {
default : 0,
test : function () {
return settings.max_messages >= 0 ? null : 'max_messages must be >= 0';
} }
},
if (typeof settings.page_size !== 'number' || settings.page_size < 1) { page_size : {
settings.page_size = 25; default : 25,
test : function () {
return settings.page_size >= 1 ? null : 'page_size must be >= 1';
} }
},
forum_extended_ascii : { default : true },
active_node_list : { default : true },
hide_empty_stats : { default : true }
};
if (typeof settings.forum_extended_ascii !== 'boolean') { Object.keys(defaults).forEach(function (e) {
settings.forum_extended_ascii = true; if (typeof settings[e] == 'undefined') {
settings[e] = defaults[e].default;
} else if (typeof settings[e] != typeof defaults[e].default) {
log(LOG_ERROR, 'Invalid ' + e + ' setting: ' + settings[e]);
exit();
} else if (typeof defaults[e].test == 'function') {
const t = defaults[e].test();
if (t !== null) {
log(LOG_ERROR, t);
exit();
} }
if (typeof settings.active_node_list !== 'boolean') {
settings.active_node_list = true;
}
if (typeof settings.hide_empty_stats !== 'boolean') {
settings.hide_empty_stats = true;
} }
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment