summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--modules/luci-base/ucode/dispatcher.uc16
-rw-r--r--modules/luci-base/ucode/runtime.uc6
2 files changed, 15 insertions, 7 deletions
diff --git a/modules/luci-base/ucode/dispatcher.uc b/modules/luci-base/ucode/dispatcher.uc
index 9d310bb5c2..9500528743 100644
--- a/modules/luci-base/ucode/dispatcher.uc
+++ b/modules/luci-base/ucode/dispatcher.uc
@@ -922,16 +922,18 @@ dispatch = function(_http, path) {
http.header('X-LuCI-Login-Required', 'yes');
let scope = { duser: 'root', fuser: user };
+ let theme_sysauth = `themes/${basename(runtime.env.media)}/sysauth`;
- try {
- runtime.render(`themes/${basename(runtime.env.media)}/sysauth`, scope);
- }
- catch (e) {
- runtime.env.media_error = `${e}`;
- runtime.render('sysauth', scope);
+ if (runtime.is_ucode_template(theme_sysauth) || runtime.is_lua_template(theme_sysauth)) {
+ try {
+ return runtime.render(theme_sysauth, scope);
+ }
+ catch (e) {
+ runtime.env.media_error = `${e}`;
+ }
}
- return;
+ return runtime.render('sysauth', scope);
}
let cookie_name = (http.getenv('HTTPS') == 'on') ? 'sysauth_https' : 'sysauth_http',
diff --git a/modules/luci-base/ucode/runtime.uc b/modules/luci-base/ucode/runtime.uc
index 89e396d468..e460127e2c 100644
--- a/modules/luci-base/ucode/runtime.uc
+++ b/modules/luci-base/ucode/runtime.uc
@@ -65,6 +65,12 @@ const Class = {
return access(`${template_directory}/${path}.ut`);
},
+ is_lua_template: function(path) {
+ let vm = this.init_lua(true);
+
+ return vm && access(`${vm.get('_G', 'luci', 'template', 'viewdir')}/${path}.htm`);
+ },
+
render_ucode: function(path, scope) {
let tmplfunc = loadfile(path, { raw_mode: false });