diff options
Diffstat (limited to 'iptables-controller.lua')
-rw-r--r-- | iptables-controller.lua | 64 |
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 |