Skip to content
Snippets Groups Projects
Commit 1a33f365 authored by rswindell's avatar rswindell
Browse files

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).
parent fee9cf3f
No related branches found
No related tags found
No related merge requests found
......@@ -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);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment