From 289b8fc1b6b41829c6077893f9dd1d7181551332 Mon Sep 17 00:00:00 2001 From: Steven Barth Date: Fri, 27 Jun 2008 20:29:05 +0000 Subject: [PATCH] * libs/web: Prepare session authentication --- libs/web/luasrc/sauth.lua | 58 +++++++++++++++++++++++++++++++++++ libs/web/root/etc/config/luci | 4 +++ 2 files changed, 62 insertions(+) create mode 100644 libs/web/luasrc/sauth.lua diff --git a/libs/web/luasrc/sauth.lua b/libs/web/luasrc/sauth.lua new file mode 100644 index 0000000000..724e22d201 --- /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 diff --git a/libs/web/root/etc/config/luci b/libs/web/root/etc/config/luci index 3e1e7db4f0..2d5f1e4b2d 100644 --- a/libs/web/root/etc/config/luci +++ b/libs/web/root/etc/config/luci @@ -35,6 +35,10 @@ config internal languages option de "Deutsch" option en "English" +config internal sauth + option sessionpath "/tmp/.lucisessions" + option sessiontime 3600 + config internal template option compiler_mode file option compiledir "/tmp/.lucitplcache" -- 2.30.2