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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
-- the openssl certificates controller
module (..., package.seeall)
require("getopts")
default_action = "read"
-- View all pending and approved requests and revoked certificates
readall = function(self)
local cmdresult = self.sessiondata.cmdresult
self.sessiondata.cmdresult = nil
local pending = self.model.listrequests()
local approved = self.model.listcerts()
local revoked = nil
local result = cfe({ type="list", value={cmdresult=cmdresult, pending=pending, approved=approved, revoked=revoked} })
return result
end
-- Return all certificates (pending, approved, and revoked) for this user
read = function(self)
local cmdresult = self.sessiondata.cmdresult
self.sessiondata.cmdresult = nil
local user = cfe({ value=self.sessiondata.userinfo.userid, label="User Name" })
local pending = self.model.listrequests(self.sessiondata.userinfo.userid)
local approved = self.model.listcerts(self.sessiondata.userinfo.userid)
local revoked = nil
local result = cfe({ type="list", value={cmdresult=cmdresult, user=user, pending=pending, approved=approved, revoked=revoked} })
return result
end
-- Form to request a new cert
request = function(self)
local request
if self.clientdata.Submit then
-- Try to submit the request
request = self.model.submitrequest(self.clientdata, self.sessiondata.userinfo.userid)
if not request.errtxt then
cmdresult = cfe({ value="Request submitted", label="Request result" })
self.sessiondata.cmdresult = cmdresult
--request.descr = "Submitted request"
redirect(self, "readall")
end
else
request = self.model.getnewrequest()
end
request.type = "form"
request.label = "Request Certificate"
request.option = "Submit"
return request
end
-- Form to edit request defaults
editdefaults = function(self)
local defaults
if self.clientdata.Save then
defaults = self.model.setreqdefaults(self.clientdata)
if not defaults.errtxt then
defaults.descr = "Defaults set"
end
else
defaults = self.model.getreqdefaults()
end
defaults.type = "form"
defaults.label = "Edit certificate defaults"
defaults.option = "Save"
return defaults
end
-- View request details
viewrequest = function(self)
return self.model.viewrequest(self.clientdata.request)
end
-- Approve the specified request
approve = function(self)
local cmdresult = self.model.approverequest(self.clientdata.request)
self.sessiondata.cmdresult = cmdresult
redirect_to_referrer(self)
end
-- Delete the specified request
deleterequest = function(self)
local cmdresult = self.model.deleterequest(self.clientdata.request)
self.sessiondata.cmdresult = cmdresult
redirect_to_referrer(self)
end
-- View certificate details
viewcert = function(self)
return self.model.viewcert(self.clientdata.cert)
end
-- Get the specified cert
getcert = function(self)
self.conf.viewtype="stream"
return self.model.getcert(self.clientdata.cert)
end
-- Revoke the specified cert
revoke = function(self)
end
-- Delete the specified certificate
deletecert = function(self)
local cmdresult = self.model.deletecert(self.clientdata.cert)
self.sessiondata.cmdresult = cmdresult
redirect_to_referrer(self)
end
-- Get the revoked list
getrevoked = function(self)
end
-- Put the CA cert
putcacert = function(self)
end
|