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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
|
module(..., package.seeall)
-- Load libraries
require("controllerfunctions")
default_action = "viewauditstats"
function config(self)
return controllerfunctions.handle_form(self, self.model.getconfig, self.model.updateconfig, self.clientdata, "Save", "Edit Configuration", "Configuration Saved")
end
function listsources(self)
return self.model.getsourcelist()
end
function createsource(self)
return controllerfunctions.handle_form(self, self.model.getnewsource, self.model.createsource, self.clientdata, "Create", "Create new source", "New source created")
end
function deletesource(self)
return self:redirect_to_referrer(self.model.deletesource(self.clientdata.sourcename))
end
function editsource(self)
return controllerfunctions.handle_form(self, function() return self.model.getsource(self.clientdata.sourcename) end, self.model.updatesource, self.clientdata, "Save", "Edit Source", "Source Saved")
end
function testsource(self)
return self:redirect_to_referrer(self.model.testsource(self.clientdata.sourcename))
end
function importlogs(self)
return self:redirect_to_referrer(self.model.importlogs())
end
function viewactivitylog(self)
return self.model.getactivitylog()
end
function viewwatchlist(self)
return self.model.getwatchlist()
end
function createwatchlistentry(self)
return controllerfunctions.handle_form(self, self.model.getnewwatchlistentry, self.model.createwatchlistentry, self.clientdata, "Create", "Create new watchlist entry", "New watchlist entry created")
end
function deletewatchlistentry(self)
return self:redirect_to_referrer(self.model.deletewatchlistent(self.clientdata.clientuserid))
end
function viewweblog(self)
return self.model.getweblog(self.clientdata.activelog, self.clientdata.clientuserid, self.clientdata.starttime, self.clientdata.endtime, self.clientdata.clientip, self.clientdata.badyesno, self.clientdata.deniedyesno, self.clientdata.bypassyesno, self.clientdata.score, self.clientdata.urisearch, self.clientdata.sortby, self.clientdata.selected, clientdata.focus)
end
function downloadweblog(self)
self.conf.viewtype = "stream"
local retval = viewweblog(self)
local file = cfe({ type="longtext", value="", label=retval.value.clientuserid.value .. ".csv" })
local content = {"clientuserid,clientip,logdatetime,uri,bytes,reason,score,reason,badyesno,deniedyesno,bypassyesno"}
for i,log in ipairs(retval.value.log.value) do
content[#content+1] = string.format("%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,",
log.clientuserid, log.clientip, log.logdatetime, log.uri, log.bytes, log.reason, log.score or "0", log.reason, log.badyesno, log.deniedyesno, log.bypassyesno )
end
file.value = table.concat(content, "\n")
return file
end
function downloadlogview(self)
thisdate=os.date()
self.conf.viewtype = "stream"
local retval = viewweblog(self)
local file = cfe({ type="longtext", value="", label="Weblog-resnet-"..thisdate..".tab" })
local content = {"clientuserid\tclientip\tlogdatetime\turi\tbytes\treason\tscore\treason\tbadyesno\tdeniedyesno\tbypassyesno"}
for i,log in ipairs(retval.value.log.value) do
content[#content+1] = string.format("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t",
log.clientuserid, log.clientip, log.logdatetime, log.uri, log.bytes, log.reason, log.score or "0", log.reason, log.badyesno, log.deniedyesno, log.bypassyesno )
end
file.value = table.concat(content, "\n")
return file
end
function downloadselected(self)
thisdate=os.date()
self.conf.viewtype = "stream"
local retval = viewselected(self)
local file = cfe({ type="longtext", value="", label="Weblog-resnet-selected-"..thisdate..".tab" })
local content = {"clientuserid\tclientip\tlogdatetime\turi\tbytes\treason\tscore\treason\tbadyesno\tdeniedyesno\tbypassyesno"}
for i,log in ipairs(retval.value.log.value) do
content[#content+1] = string.format("%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t",
log.clientuserid, log.clientip, log.logdatetime, log.uri, log.bytes, log.reason, log.score or "0", log.reason, log.badyesno, log.deniedyesno, log.bypassyesno )
end
file.value = table.concat(content, "\n")
return file
end
function checkselected(self)
self.conf.viewtype = "silent"
return self.model.editselected(self.clientdata.chkdata)
--return file
end
function clearselected(self)
return self:redirect_to_referrer(self.model.clearselected())
end
function viewselected(self)
--return self.model.getselected(self.clientdata.csvdata, self.clientdata.starttime, self.clientdata.endtime)
return self.model.getweblog(self.clientdata.activelog, self.clientdata.clientuserid, self.clientdata.starttime, self.clientdata.endtime, self.clientdata.clientip, self.clientdata.badyesno, self.clientdata.deniedyesno, self.clientdata.bypassyesno, self.clientdata.score, self.clientdata.urisearch, self.clientdata.sortby, self.clientdata.getselected, clientdata.focus)
end
function adhocquery(self)
return controllerfunctions.handle_form(self, self.model.getnewadhocquery, self.model.adhocquery, self.clientdata, "Submit", "Submit ad-hoc query")
end
function downloadadhocquery(self)
self.conf.viewtype = "stream"
local retval = self.model.getnewadhocquery()
controllerfunctions.handle_clientdata(retval, self.clientdata)
retval = self.model.adhocquery(retval)
local file = cfe({ type="longtext", value="", label="query" })
if retval.value.result and #retval.value.result.value > 0 then
local columns = {}
for name,val in pairs(retval.value.result.value[1]) do
columns[#columns+1] = name
end
local content = {table.concat(columns, "\t")}
for i,entry in ipairs(retval.value.result.value) do
local line = {}
for i,name in ipairs(columns) do
line[#line+1] = entry[name] or ""
end
content[#content+1] = table.concat(line, "\t")
end
file.value = table.concat(content, "\n")
end
return file
end
function status(self)
return self.model.testdatabase()
end
function createdatabase(self)
return controllerfunctions.handle_form(self, self.model.getnewdatabase, self.model.create_database, self.clientdata, "Create", "Create New Database", "Database Created")
end
function listfiles(self)
return self.model.listfiles(self)
end
function createfile(self)
return controllerfunctions.handle_form(self, self.model.getnewfile, self.model.createfile, self.clientdata, "Create", "Create New Weblog File", "Weblog File Created")
end
function editfile(self)
return controllerfunctions.handle_form(self, function() return self.model.readfile(self.clientdata.filename) end, self.model.updatefile, self.clientdata, "Save", "Edit Weblog File", "Weblog File Saved" )
end
function deletefile(self)
return self:redirect_to_referrer(self.model.deletefile(self.clientdata.filename))
end
|