From 1a33f36519401b566989fb86f096b97725ecda61 Mon Sep 17 00:00:00 2001 From: rswindell <> Date: Thu, 12 Jun 2003 09:10:16 +0000 Subject: [PATCH] If no user specified (e.g. for offline events), all areas included in arrays. Fixed is_operator property (was always true). Created is_download_free() function which checks all the various criteria that can make a download free for a particular user from a particular file area, with support for per-directory exemption ARS (finally). --- src/sbbs3/js_file_area.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/sbbs3/js_file_area.c b/src/sbbs3/js_file_area.c index c322d87a20..969f85b6cb 100644 --- a/src/sbbs3/js_file_area.c +++ b/src/sbbs3/js_file_area.c @@ -128,10 +128,10 @@ JSObject* DLLCALL js_CreateFileAreaObject(JSContext* cx, JSObject* parent, scfg_ return(NULL); for(l=0;l<cfg->total_libs;l++) { - +#if 0 if(user==NULL && (*cfg->lib[l]->ar)!=AR_NULL) continue; - +#endif if(user!=NULL && !chk_ar(cfg,cfg->lib[l]->ar,user)) continue; @@ -176,10 +176,10 @@ JSObject* DLLCALL js_CreateFileAreaObject(JSContext* cx, JSObject* parent, scfg_ for(d=0;d<cfg->total_dirs;d++) { if(cfg->dir[d]->lib!=l) continue; - +#if 0 if(user==NULL && (*cfg->dir[d]->ar)!=AR_NULL) continue; - +#endif if(user!=NULL && !chk_ar(cfg,cfg->dir[d]->ar,user)) continue; @@ -288,14 +288,17 @@ JSObject* DLLCALL js_CreateFileAreaObject(JSContext* cx, JSObject* parent, scfg_ if(!JS_SetProperty(cx, dirobj, "can_download", &val)) return(NULL); - if(user==NULL || chk_ar(cfg,cfg->dir[d]->ex_ar,user)) + if(is_download_free(cfg,d,user)) val=BOOLEAN_TO_JSVAL(JS_TRUE); else val=BOOLEAN_TO_JSVAL(JS_FALSE); if(!JS_SetProperty(cx, dirobj, "is_exempt", &val)) return(NULL); - if(user==NULL || chk_ar(cfg,cfg->dir[d]->op_ar,user)) + if(user!=NULL + && (user->level>=SYSOP_LEVEL + || (cfg->dir[d]->op_ar[0]!=0 + && chk_ar(cfg,cfg->dir[d]->op_ar,user)))) val=BOOLEAN_TO_JSVAL(JS_TRUE); else val=BOOLEAN_TO_JSVAL(JS_FALSE); -- GitLab