summaryrefslogtreecommitdiffstats
path: root/iptables-controller.lua
diff options
context:
space:
mode:
Diffstat (limited to 'iptables-controller.lua')
-rw-r--r--iptables-controller.lua64
1 files changed, 64 insertions, 0 deletions
diff --git a/iptables-controller.lua b/iptables-controller.lua
new file mode 100644
index 0000000..16fac32
--- /dev/null
+++ b/iptables-controller.lua
@@ -0,0 +1,64 @@
+module(..., package.seeall)
+
+-- Load libraries
+require("controllerfunctions")
+
+-- ################################################################################
+-- LOCAL FUNCTIONS
+
+-- ################################################################################
+-- PUBLIC FUNCTIONS
+
+default_action = "status"
+
+function status(self)
+ return self.model.getstatus()
+end
+
+function details(self)
+ return self.model.getstatusdetails()
+end
+
+function filterrules(self)
+ return self.model.getrules("filter")
+end
+
+function natrules(self)
+ return self.model.getrules("nat")
+end
+
+function manglerules(self)
+ return self.model.getrules("mangle")
+end
+
+function editchain(self)
+ return controllerfunctions.handle_form(self, function() return self.model.read_chain(self.clientdata.table, self.clientdata.chain or "") end, self.model.update_chain, self.clientdata, "Save", "Edit Chain", "Chain saved")
+end
+
+function createchain(self)
+ return controllerfunctions.handle_form(self, function() return self.model.read_chain(self.clientdata.table) end, self.model.create_chain, self.clientdata, "Create", "Create New Chain", "Chain created")
+end
+
+function deletechain(self)
+ return self:redirect_to_referrer(self.model.delete_chain(self.clientdata.table, self.clientdata.chain))
+end
+
+function editrule(self)
+ return controllerfunctions.handle_form(self, function() return self.model.read_rule(self.clientdata.table, self.clientdata.chain or "", self.clientdata.position or "") end, self.model.update_rule, self.clientdata, "Save", "Edit Rule", "Rule saved")
+end
+
+function createrule(self)
+ return controllerfunctions.handle_form(self, function() return self.model.read_rule(self.clientdata.table, self.clientdata.chain, self.clientdata.position) end, self.model.create_rule, self.clientdata, "Create", "Create New Rule", "Rule created")
+end
+
+function deleterule(self)
+ return self:redirect_to_referrer(self.model.delete_rule(self.clientdata.table, self.clientdata.chain, self.clientdata.position))
+end
+
+function expert(self)
+ return controllerfunctions.handle_form(self, self.model.readrulesfile, self.model.updaterulesfile, self.clientdata, "Save", "Edit Rules File", "Rules File Saved")
+end
+
+function startstop(self)
+ return controllerfunctions.handle_startstop(self, self.model.startstop_service, self.model.getstatus, self.clientdata)
+end