luci-base: allow themes to provide sysauth.htm
authorKarl Palsson <karlp@etactica.com>
Tue, 30 Jun 2020 15:40:52 +0000 (15:40 +0000)
committerJo-Philipp Wich <jo@mein.io>
Tue, 30 Jun 2020 15:43:39 +0000 (17:43 +0200)
Support for sysauth_template was (inadvertently) dropped in refactorings
to support the json menu construction.  This does not restore that
functionality, which allowed different templates for every node in the
dispatcher tree, but provides an alternative mechanism that allows a
theme to provide a sysauth.htm template file instead.

Tested-by: Karl Palsson <karlp@etactica.com>
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-base/luasrc/dispatcher.lua

index d2552d6db4ef311557f45db4a7a1239d495cdb41..57b4e12d173d619ad7b4da81115b567947bfbbe5 100644 (file)
@@ -884,7 +884,12 @@ function dispatch(request)
                                http.status(403, "Forbidden")
                                http.header("X-LuCI-Login-Required", "yes")
 
-                               return tpl.render("sysauth", { duser = "root", fuser = user })
+                               local scope = { duser = "root", fuser = user }
+                               local ok, res = util.copcall(tpl.render_string, [[<% include("themes/" .. theme .. "/sysauth") %>]], scope)
+                               if ok then
+                                       return res
+                               end
+                               return tpl.render("sysauth", scope)
                        end
 
                        http.header("Set-Cookie", 'sysauth=%s; path=%s; SameSite=Strict; HttpOnly%s' %{