summaryrefslogtreecommitdiffstats
path: root/weblog-controller.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2009-05-29 11:47:59 +0200
committerNatanael Copa <natanael.copa@gmail.com>2009-05-29 11:47:59 +0200
commit290d71b1b8bba45be46087a78bdcbdd516199985 (patch)
treee7ab2c3916dc535e4db16dacbf1706ed71ac4977 /weblog-controller.lua
downloadacf-weblog-290d71b1b8bba45be46087a78bdcbdd516199985.tar.bz2
acf-weblog-290d71b1b8bba45be46087a78bdcbdd516199985.tar.xz
initial commitv0.1.0
based on weblog.tar.gz ncopa got by email.
Diffstat (limited to 'weblog-controller.lua')
-rw-r--r--weblog-controller.lua122
1 files changed, 122 insertions, 0 deletions
diff --git a/weblog-controller.lua b/weblog-controller.lua
new file mode 100644
index 0000000..26a69ae
--- /dev/null
+++ b/weblog-controller.lua
@@ -0,0 +1,122 @@
+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.clientuserid, self.clientdata.starttime, self.clientdata.endtime, self.clientdata.clientip, 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 .. ".log" })
+ local content = {"sourcename\tclientip\tclientuserid\tlogdatetime\turi\tbytes\treason\tscore"}
+ 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",
+ log.sourcename, log.clientip, log.clientuserid, log.logdatetime,
+ log.uri, log.bytes, log.reason or "", log.score or "0")
+ end
+ file.value = table.concat(content, "\n")
+ return file
+end
+
+function viewblocklog(self)
+ return self.model.getblocklog(self.clientdata.clientuserid, self.clientdata.starttime, self.clientdata.endtime, self.clientdata.clientip, clientdata.focus)
+end
+
+function viewusagestats(self)
+ return self.model.getusagestats()
+end
+
+function viewauditstats(self)
+ return self.model.getauditstats()
+end
+
+function completeaudit(self)
+ return self:redirect_to_referrer(self.model.completeaudit(self.clientdata.auditend))
+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