summaryrefslogtreecommitdiffstats
path: root/app/acf-util/logon-controller.lua
blob: e10874e466e66cab655cfa4eeb1f6f7d35949a95 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
-- Logon / Logoff functions

module (..., package.seeall)

--require ("session")
	
mvc.on_load = function(self, parent)
     if (self.worker[self.conf.action] == nil ) or ( self.conf.action == "init" ) then
      self.worker[self.conf.action] = list_redir(self)
      end
 --logit ("logon.mvc.on_load activated")
 end

logon = function(self)
--return ( {logon=self.model:logon(self,clientdata.userid, clientdata.password) })
	
local userid=cfe({ name="userid" })
local password=cfe({ name="password" })
local logon=cfe({ name="Logon", type="submit"})
local s = ""

	-- FIXME - if they are already logged in, log out first
	
	if clientdata.userid and clientdata.password then
	local t = self.model.logon(self,clientdata.userid,clientdata.password)
	
		if t == nil then
		userid.value = self.clientdata.userid
			userid.errtxt = "There was a problem logging in"
		else
		-- the login was successful - give them a new session, and redir to logged in
			sessiondata.id = session.random_hash ( 512)
			sessiondata.userinfo = t or {}
			self.conf.prefix="/acf-util/"
			self.conf.controller="logon"
			self.conf.action = "status"
			self.conf.type = "redir"
			error (self.conf)
		end
	end
	-- If we reach this point, just give them the login page
        	return ( cfe ({type="form",
		option={ script=ENV["SCRIPT_NAME"],
		prefix=self.conf.prefix,
		controller = self.conf.controller,
		action = "logon" },
		value = { userid, password, logon } }))
end


logout = function(self)
	return  { logout = self.model:logoff(clientdata.sessionid) } 
end

status = function(self)
	return( {stats= self.model:status(clientdata.sessionid) })
end