Skip to content
Snippets Groups Projects
Commit a639a6dc authored by echicken's avatar echicken
Browse files

Respect webctrl.ini on a per-file basis when loading pages or sidebar items.

parent cf87c170
No related branches found
No related tags found
No related merge requests found
<?xjs load('webInit.ssjs'); ?>
<?xjs
load('webInit.ssjs');
function checkWebCtrl(path, fileName) {
if(!file_exists(path + "webctrl.ini"))
return true; // Directory is not controlled, allow access
var f = new File(path + "webctrl.ini");
f.open("r");
if(f.is_open) {
var webctrl = f.iniGetAllObjects();
f.close();
} else {
return false; // Directory is controlled but webctrl not openable
}
for(var w = 0; w < webctrl.length; w++) {
if(webctrl[w].name != fileName)
continue;
if(webctrl[w].hasOwnProperty('AccessRequirements') && !user.compare_ars(webctrl[w].AccessRequirements))
return false;
}
return true;
}
?>
<html>
<head>
......@@ -23,6 +45,9 @@
for(var f = 0; f < d.length; f++) {
if(file_isdir(d[f]))
continue;
var fn = file_getname(d[f]);
if(!checkWebCtrl(webIni.RootDirectory + '/sidebar/', fn))
continue;
var ext = d[f].toUpperCase().split(".").slice(1).join(".");
if(ext == "XJS.SSJS")
continue;
......@@ -65,7 +90,9 @@
else
ext = ext.toUpperCase();
var f = file_exists(webIni.RootDirectory + "/pages/" + page);
if(f && ext == ".SSJS") {
if(!f || !checkWebCtrl(webIni.RootDirectory + "/pages/", page)) {
print("Page not available.");
} else if(ext == ".SSJS") {
load(webIni.RootDirectory + "/pages/" + page);
} else if(f && ext == ".HTML") {
var f = new File(webIni.RootDirectory + "/pages/" + page);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment