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
58
59
60
|
-- Logon / Logoff functions
module (..., package.seeall)
require ("session")
mvc.on_load = function(self, parent)
-- If they specify an invalid action or try to run init, then redirect
-- to the read function.
if ( self.conf.action == nil or self.conf.action == "init" ) then
-- do what?
end
end
logon = function(self)
local username=cfe({ name="username" })
local password=cfe({ name="password" })
local logon=cfe({ name="Logon", type="submit"})
local s = ""
if self.clientdata.username and self.clientdata.password then
if self.model.logon(self, self.clientdata.username, self.clientdata.password) == false then
username.value = self.clientdata.username
if self.session.id then
username.errtxt = "You are already logged in. Logout first."
else
username.errtxt = "There was a problem logging in"
end
else
self.conf.controller = ""
self.conf.action = ""
self.conf.prefix = ""
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 = { username, password, logon } }))
end
logout = function(self)
self.model.logout(self, session.id)
-- and raise an error to go to the homepage
self.conf.action = ""
self.conf.prefix = ""
self.conf.controller = ""
self.conf.type = "redir"
error(self.conf)
end
|