1
+ load ( 'sbbsdefs.js' ) ;
1
2
load ( 'modopts.js' ) ;
2
3
3
4
var settings = get_mod_options ( 'web' ) ;
@@ -22,48 +23,46 @@ settings.web_lib = backslash(settings.web_directory + 'lib/');
22
23
settings . web_pages = backslash ( fullpath ( settings . web_root + '../pages' ) ) ;
23
24
settings . web_sidebar = backslash ( fullpath ( settings . web_root + '../sidebar' ) ) ;
24
25
25
- // Guest
26
- if ( typeof settings . guest === 'undefined' ) settings . guest = 'Guest' ;
27
- if ( system . matchuser ( settings . guest ) == 0 ) exit ( ) ;
26
+ var defaults = {
27
+ guest : {
28
+ default : 'Guest' ,
29
+ test : function ( ) {
30
+ return system . matchuser ( settings . guest ) ? null : 'Guest account unavailable' ;
31
+ }
32
+ } ,
33
+ timeout : { default : 43200 } ,
34
+ user_registration : { default : false } ,
35
+ minimum_password_length : { default : 4 } ,
36
+ email_validation : { default : true } ,
37
+ email_validation_level : { default : 50 } ,
38
+ max_messages : {
39
+ default : 0 ,
40
+ test : function ( ) {
41
+ return settings . max_messages >= 0 ? null : 'max_messages must be >= 0' ;
42
+ }
43
+ } ,
44
+ page_size : {
45
+ default : 25 ,
46
+ test : function ( ) {
47
+ return settings . page_size >= 1 ? null : 'page_size must be >= 1' ;
48
+ }
49
+ } ,
50
+ forum_extended_ascii : { default : true } ,
51
+ active_node_list : { default : true } ,
52
+ hide_empty_stats : { default : true }
53
+ } ;
28
54
29
- // Timeout
30
- if ( typeof settings . timeout !== 'number' ) settings . timeout = 43200 ;
31
-
32
- // Registration
33
- if ( typeof settings . user_registration !== 'boolean' ) {
34
- settings . user_registration = false ;
35
- } else {
36
-
37
- if ( typeof settings . minimum_password_length !== 'number' ) {
38
- settings . minimum_password_length = 4 ;
39
- }
40
-
41
- if ( typeof settings . email_validation !== 'boolean' ) {
42
- settings . email_validation = true ;
43
- }
44
-
45
- if ( typeof settings . email_validation_level !== 'number' ) {
46
- settings . email_validation_level = 50 ;
47
- }
48
-
49
- }
50
-
51
- if ( typeof settings . max_messages !== 'number' || settings . max_messages < 0 ) {
52
- settings . max_messages = 0 ;
53
- }
54
-
55
- if ( typeof settings . page_size !== 'number' || settings . page_size < 1 ) {
56
- settings . page_size = 25 ;
57
- }
58
-
59
- if ( typeof settings . forum_extended_ascii !== 'boolean' ) {
60
- settings . forum_extended_ascii = true ;
61
- }
62
-
63
- if ( typeof settings . active_node_list !== 'boolean' ) {
64
- settings . active_node_list = true ;
65
- }
66
-
67
- if ( typeof settings . hide_empty_stats !== 'boolean' ) {
68
- settings . hide_empty_stats = true ;
69
- }
55
+ Object . keys ( defaults ) . forEach ( function ( e ) {
56
+ if ( typeof settings [ e ] == 'undefined' ) {
57
+ settings [ e ] = defaults [ e ] . default ;
58
+ } else if ( typeof settings [ e ] != typeof defaults [ e ] . default ) {
59
+ log ( LOG_ERROR , 'Invalid ' + e + ' setting: ' + settings [ e ] ) ;
60
+ exit ( ) ;
61
+ } else if ( typeof defaults [ e ] . test == 'function' ) {
62
+ const t = defaults [ e ] . test ( ) ;
63
+ if ( t !== null ) {
64
+ log ( LOG_ERROR , t ) ;
65
+ exit ( ) ;
66
+ }
67
+ }
68
+ } ) ;
0 commit comments