From 40ea307aa34120de1409050525140831ce8634d8 Mon Sep 17 00:00:00 2001 From: Ted Trask Date: Mon, 28 Apr 2008 13:04:04 +0000 Subject: Added cfe support to logon git-svn-id: svn://svn.alpinelinux.org/acf/core/trunk@1049 ab2d0c66-481e-0410-8bed-d214d4d58bed --- app/acf-util/logon-controller.lua | 23 ++++++++++++----------- app/acf-util/logon-html.lsp | 6 +++--- app/acf-util/logon-model.lua | 19 +++++-------------- app/acf-util/logon-status-html.lsp | 4 ++-- 4 files changed, 22 insertions(+), 30 deletions(-) (limited to 'app') diff --git a/app/acf-util/logon-controller.lua b/app/acf-util/logon-controller.lua index 8dddb87..7d4447b 100644 --- a/app/acf-util/logon-controller.lua +++ b/app/acf-util/logon-controller.lua @@ -6,31 +6,32 @@ default_action = "status" -- Logon a new user based upon id and password in clientdata logon = function(self) - local cmdresult + local cmdresult = cfe({ value=clientdata.userid or "", name="User ID" }) if clientdata.userid and clientdata.password then local logon = self.model:logon(clientdata, conf.clientip, conf.sessiondir, sessiondata) -- If successful logon, redirect to status, otherwise try again - if logon then - self.conf.action = "status" - self.conf.type = "redir" - error(self.conf) + if logon.value then + redirect(self, "status") else - cmdresult = "Logon Attempt Failed" + cmdresult.errtxt = "Logon Attempt Failed" end end - return ({ cmdresult = cmdresult }) + return cmdresult end -- Log out current user and go to login screen logout = function(self) local logout = self.model.logoff(conf.sessiondir, sessiondata) -- We have to redirect so a new session / menu is created - self.conf.action = "logon" - self.conf.type = "redir" - error (self.conf) + redirect(self, "logon") end -- Report the login status status = function(self) - return self.model.status(sessiondata) + local name = cfe({ name="User Name" }) + local sessionid = cfe({ value=self.sessiondata.id or "", name="Session ID" }) + if self.sessiondata.userinfo then + name.value = self.sessiondata.userinfo.username or "" + end + return cfe({ type="group", value={username=name, sessionid=sessionid} }) end diff --git a/app/acf-util/logon-html.lsp b/app/acf-util/logon-html.lsp index c1b4500..20aa0ee 100644 --- a/app/acf-util/logon-html.lsp +++ b/app/acf-util/logon-html.lsp @@ -3,16 +3,16 @@ io.write(html.cfe_unpack(form)) --]] ?> - +

Command Result

-

+

Logon

User id
-
+
Password
diff --git a/app/acf-util/logon-model.lua b/app/acf-util/logon-model.lua index cd840f7..7e8a21e 100644 --- a/app/acf-util/logon-model.lua +++ b/app/acf-util/logon-model.lua @@ -23,12 +23,13 @@ end logoff = function (sessiondir, sessiondata) -- Unlink / delete the current session local result = session.unlink_session(sessiondir, sessiondata.id) + local success = (result ~= nil) -- Clear the current session data for a,b in pairs(sessiondata) do sessiondata[a] = nil end - return (result) + return cfe({ type="boolean", value=success, name="Logoff Success" }) end -- Log on new user if possible and set up userinfo in session @@ -38,10 +39,9 @@ logon = function (self, clientdata, ip_addr, sessiondir, sessiondata) local countevent = session.count_events(sessiondir, clientdata.userid, session.hash_ip_addr(ip_addr)) if countevent then session.record_event(sessiondir, clientdata.userid, session.hash_ip_addr(ip_addr)) - return (false) end - if clientdata.userid and clientdata.password then + if false == countevent and clientdata.userid and clientdata.password then local password_user_md5 = fs.md5sum_string(clientdata.password) if auth.authenticate (self, clientdata.userid, password_user_md5) then -- We have a successful login, change sessiondata @@ -57,21 +57,12 @@ logon = function (self, clientdata, ip_addr, sessiondir, sessiondata) sessiondata.id = session.random_hash(512) local t = auth.get_userinfo (self, clientdata.userid) sessiondata.userinfo = t or {} - return (true) + return cfe({ type="boolean", value=true, name="Logon Success" }) else -- We have a bad login, log the event session.record_event(sessiondir, clientdata.userid, session.hash_ip_addr(ip_addr)) end end - return (false) -end - --- Return the session id and username -status = function(sessiondata) - local name = "unknown" - if sessiondata.userinfo and sessiondata.userinfo.username then - name = sessiondata.userinfo.username - end - return ( { sessionid = sessiondata.id, username = name } ) + return cfe({ type="boolean", value=false, name="Logon Success" }) end diff --git a/app/acf-util/logon-status-html.lsp b/app/acf-util/logon-status-html.lsp index 072051d..661b588 100644 --- a/app/acf-util/logon-status-html.lsp +++ b/app/acf-util/logon-status-html.lsp @@ -4,5 +4,5 @@ --]] ?>

User Status

Below is your current Session id

- -

You are currently known to the system as .

+ +

You are currently known to the system as .

-- cgit v1.2.3