summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2008-04-28 13:04:04 +0000
committerTed Trask <ttrask01@yahoo.com>2008-04-28 13:04:04 +0000
commit40ea307aa34120de1409050525140831ce8634d8 (patch)
tree898ec3eecc13aada3580a1ae7ace70fedecfc5ab /app
parent0fc3f415148c28ab02e5defbd6fa19524258e4cf (diff)
downloadacf-core-40ea307aa34120de1409050525140831ce8634d8.tar.bz2
acf-core-40ea307aa34120de1409050525140831ce8634d8.tar.xz
Added cfe support to logon
git-svn-id: svn://svn.alpinelinux.org/acf/core/trunk@1049 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'app')
-rw-r--r--app/acf-util/logon-controller.lua23
-rw-r--r--app/acf-util/logon-html.lsp6
-rw-r--r--app/acf-util/logon-model.lua19
-rw-r--r--app/acf-util/logon-status-html.lsp4
4 files changed, 22 insertions, 30 deletions
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))
--]] ?>
-<? if form.cmdresult then ?>
+<? if form.errtxt ~= "" then ?>
<h1>Command Result</h1>
-<p class='error'> <?= form.cmdresult ?></p>
+<p class='error'> <?= form.errtxt ?></p>
<? end ?>
<h1>Logon</h1>
<form action="logon" method="POST">
<DL>
<DT>User id</DT>
- <DD><input class="text" type="text" name="userid" value=""></DD>
+ <DD><input class="text" type="text" name="userid" value="<?= form.value ?>"></DD>
<DT>Password</DT>
<DD><input class="password" type="password" name="password" value=""></DD>
<DT><input class="submit" type="submit" name="Logon" value="Logon"></DD>
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 @@
--]] ?>
<h1>User Status </h1>
<p> Below is your current Session id <p>
-<?= view.sessionid ?>
-<p>You are currently known to the system as <?= view.username ?>.</p>
+<?= view.value.sessionid.value ?>
+<p>You are currently known to the system as <?= view.value.username.value ?>.</p>