From b8240f3516945b5969bfcfeb1fcc057759f5dd4b Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Sun, 29 Jun 2008 14:43:06 +0000 Subject: [PATCH] * libs/web: Added Logout support * libs/web: Fixed a bug with an invalid calling convention in luci.dispatcher * libs/sys: Fixed rudimentary posix.crypt detection --- i18n/english/luasrc/i18n/default.en.lua | 1 + i18n/german/luasrc/i18n/default.de.lua | 1 + libs/core/luasrc/sys.lua | 2 +- libs/web/luasrc/dispatcher.lua | 4 ++-- modules/admin-core/luasrc/controller/admin/index.lua | 7 ++++++- 5 files changed, 11 insertions(+), 4 deletions(-) diff --git a/i18n/english/luasrc/i18n/default.en.lua b/i18n/english/luasrc/i18n/default.en.lua index 593c11ea3c..df135a66d8 100644 --- a/i18n/english/luasrc/i18n/default.en.lua +++ b/i18n/english/luasrc/i18n/default.en.lua @@ -40,6 +40,7 @@ ipaddress = "IP-Address" legend = "Legend" library = "Library" +logout = "Logout" key = "Key" diff --git a/i18n/german/luasrc/i18n/default.de.lua b/i18n/german/luasrc/i18n/default.de.lua index 0eec9cf833..4e0a36f66c 100644 --- a/i18n/german/luasrc/i18n/default.de.lua +++ b/i18n/german/luasrc/i18n/default.de.lua @@ -42,6 +42,7 @@ legend = "Legende" library = "Bibliothek" load = "Last" login = "Anmelden" +logout = "Abmelden" key = "Schlüssel" diff --git a/libs/core/luasrc/sys.lua b/libs/core/luasrc/sys.lua index c5c471a75f..e5f19f20b8 100644 --- a/libs/core/luasrc/sys.lua +++ b/libs/core/luasrc/sys.lua @@ -289,7 +289,7 @@ function user.checkpasswd(username, password) local account = user.getuser(username) -- FIXME: detect testing environment - if luci.fs.isfile("/etc/shadow") and not luci.fs.access("/etc/shadow", "r") then + if luci.fs.stat("/etc/shadow") and not luci.fs.access("/etc/shadow", "r") then return true elseif account then if account.passwd == "!" then diff --git a/libs/web/luasrc/dispatcher.lua b/libs/web/luasrc/dispatcher.lua index 7c28f6a78e..689d060d52 100644 --- a/libs/web/luasrc/dispatcher.lua +++ b/libs/web/luasrc/dispatcher.lua @@ -75,7 +75,7 @@ function sysauth(default) if user and luci.sys.user.checkpasswd(user, pass) then local sid = luci.sys.uniqueid(16) - luci.http.header("Set-Cookie", "sysauth=" .. sid) + luci.http.header("Set-Cookie", "sysauth=" .. sid.."; path=/") luci.sauth.write(sid, user) return true else @@ -291,7 +291,7 @@ end -- Reassigns a node to another position function assign(path, clone, title, order) - local obj = node(path) + local obj = node(unpack(path)) obj.nodes = nil obj.module = nil diff --git a/modules/admin-core/luasrc/controller/admin/index.lua b/modules/admin-core/luasrc/controller/admin/index.lua index 93d2e47875..eb58e00422 100644 --- a/modules/admin-core/luasrc/controller/admin/index.lua +++ b/modules/admin-core/luasrc/controller/admin/index.lua @@ -40,5 +40,10 @@ function index() page.target = cbi("admin_index/luci") page.title = i18n("a_i_ui", "Oberfläche") - + entry({"admin", "logout"}, call("action_logout"), i18n("logout")) +end + +function action_logout() + luci.http.header("Set-Cookie", "sysauth=; path=/") + luci.http.redirect(luci.dispatcher.build_url()) end \ No newline at end of file -- 2.30.2