From 289b8fc1b6b41829c6077893f9dd1d7181551332 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Fri, 27 Jun 2008 20:29:05 +0000 Subject: * libs/web: Prepare session authentication --- libs/web/luasrc/sauth.lua | 58 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 libs/web/luasrc/sauth.lua (limited to 'libs/web/luasrc/sauth.lua') diff --git a/libs/web/luasrc/sauth.lua b/libs/web/luasrc/sauth.lua new file mode 100644 index 000000000..724e22d20 --- /dev/null +++ b/libs/web/luasrc/sauth.lua @@ -0,0 +1,58 @@ +--[[ + +Session authentication +(c) 2008 Steven Barth + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +$Id$ + +]]-- +module("luci.sauth", package.seeall) +require("luci.fs") +require("luci.config") + + +luci.config.sauth = luci.config.sauth or {} +sessionpath = luci.config.sauth.sessionpath +sessiontime = luci.config.sauth.sessiontime + + +function clean() + local now = os.time() + local files = luci.fs.dir(sessionpath) + + if not files then + return nil + end + + for i, file in files do + local fname = sessionpath .. "/" .. file + local stat = luci.fs.stat(fname) + if stat and stat.type == "regular" and stat.atime + sessiontime < now then + luci.fs.unlink(fname) + end + end +end + +function prepare() + luci.fs.mkdir(sessionpath) + luci.fs.chmod(sessionpath, "a-rwx,u+rw") +end + +function read(id) + cleansessions() + return luci.fs.readfile(sessionpath .. "/" .. id) +end + +function write(id, data) + if not luci.fs.stat(sessionpath) then + prepare() + end + luci.fs.writefile(sessionpath .. "/" .. id, data) + luci.fs.chmod(sessionpath .. "/" .. id, "a-rwx,u+rw") +end \ No newline at end of file -- cgit v1.2.3