diff options
Diffstat (limited to 'modules/luci-base/ucode')
-rw-r--r-- | modules/luci-base/ucode/dispatcher.uc | 16 | ||||
-rw-r--r-- | modules/luci-base/ucode/runtime.uc | 6 |
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 }); |