diff options
author | Ted Trask <ttrask01@yahoo.com> | 2008-04-28 13:04:04 +0000 |
---|---|---|
committer | Ted Trask <ttrask01@yahoo.com> | 2008-04-28 13:04:04 +0000 |
commit | 40ea307aa34120de1409050525140831ce8634d8 (patch) | |
tree | 898ec3eecc13aada3580a1ae7ace70fedecfc5ab /app | |
parent | 0fc3f415148c28ab02e5defbd6fa19524258e4cf (diff) | |
download | acf-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.lua | 23 | ||||
-rw-r--r-- | app/acf-util/logon-html.lsp | 6 | ||||
-rw-r--r-- | app/acf-util/logon-model.lua | 19 | ||||
-rw-r--r-- | app/acf-util/logon-status-html.lsp | 4 |
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> |