Fixed some minor session handling issues
authorSteven Barth <steven@midlink.org>
Fri, 5 Sep 2008 14:28:36 +0000 (14:28 +0000)
committerSteven Barth <steven@midlink.org>
Fri, 5 Sep 2008 14:28:36 +0000 (14:28 +0000)
libs/web/luasrc/dispatcher.lua
libs/web/luasrc/sauth.lua

index 7692dd2..296c762 100644 (file)
@@ -182,7 +182,7 @@ function dispatch(request)
                 
                local def  = (type(track.sysauth) == "string") and track.sysauth
                local accs = def and {track.sysauth} or track.sysauth
-               local sess = luci.http.getcookie("sysauth")
+               local sess = ctx.authsession or luci.http.getcookie("sysauth")
                sess = sess and sess:match("^[A-F0-9]+$")
                local user = sauth.read(sess)
                
@@ -197,6 +197,7 @@ function dispatch(request)
                                        if not sess then
                                                sauth.write(sid, user)
                                        end
+                                       ctx.authsession = sid
                                end
                        else
                                luci.http.status(403, "Forbidden")
index 0ac2367..b724bf2 100644 (file)
@@ -23,7 +23,7 @@ require("luci.config")
 
 luci.config.sauth = luci.config.sauth or {}
 sessionpath = luci.config.sauth.sessionpath
-sessiontime = tonumber(luci.config.sauth.sessiontime)
+sessiontime = tonumber(luci.config.sauth.sessiontime) or 15 * 60
 
 --- Manually clean up expired sessions.
 function clean()
@@ -57,10 +57,10 @@ end
 -- @param id   Session identifier
 -- @return             Session data
 function read(id)
+       clean()
        if not id or not sane(sessionpath .. "/" .. id) then
                return
        end
-       clean()
        return luci.fs.readfile(sessionpath .. "/" .. id)
 end