summaryrefslogtreecommitdiffstats
path: root/shorewall-controller.lua
diff options
context:
space:
mode:
authorMika Havela <mika.havela@gmail.com>2008-03-04 08:49:41 +0000
committerMika Havela <mika.havela@gmail.com>2008-03-04 08:49:41 +0000
commit73433bf9ea9a0f7f56203bafa111821bb47856cf (patch)
tree8961f85a4d8827ad05c6c085daf04f0de998b0a3 /shorewall-controller.lua
parent8c41156d76be7332fd34d1ab18a078510745b81a (diff)
downloadacf-shorewall-73433bf9ea9a0f7f56203bafa111821bb47856cf.tar.bz2
acf-shorewall-73433bf9ea9a0f7f56203bafa111821bb47856cf.tar.xz
Added the missing (example)-page. Added functionallity so that the page has live data
git-svn-id: svn://svn.alpinelinux.org/acf/shorewall/trunk@799 ab2d0c66-481e-0410-8bed-d214d4d58bed
Diffstat (limited to 'shorewall-controller.lua')
-rw-r--r--shorewall-controller.lua245
1 files changed, 36 insertions, 209 deletions
diff --git a/shorewall-controller.lua b/shorewall-controller.lua
index efcaa65..b2bc2bb 100644
--- a/shorewall-controller.lua
+++ b/shorewall-controller.lua
@@ -13,16 +13,6 @@ mvc.on_load = function(self, parent)
end
end
-local function getstatus(self)
- local status = self.model.getstatus()
--- if (#status.status.value > 0) then
--- status.status.value = "Enabled"
--- else
--- status.status.value = "Disabled"
--- end
- return status
-end
-
local function displaycmdmanagement(disablestart,disablestop,disablerestart)
-- Add a management buttons
local management = {}
@@ -63,18 +53,36 @@ local function displaycmdsave(self)
end
function status(self)
- return { status=getstatus(self) }
+ return { status=self.model.getstatus() }
end
function config(self)
local config=self.model:getconfig()
- local status=getstatus(self)
+ local status=self.model.getstatus()
+
+ -- Redirect if button is pressed
+ if (self.clientdata.params_list_cmd) then
+ self.conf.action = "edit_params"
+ self.conf.type = "redir"
+ error (self.conf)
+ end
-- Add a [New] record to the options
table.insert(config.interfaces_list.option, "[New]")
table.insert(config.zones_list.option, "[New]")
table.insert(config.policies_list.option, "[New]")
table.insert(config.rules_list.option, "[New]")
+ table.insert(config.params_list.option, "[New]")
+
+ -- Add button
+ config.params_list_cmd = cfe ({
+ name="params_list_cmd",
+ label="Edit above record",
+ value="Edit",
+ type="submit",
+-- disabled="yes",
+ })
+ config.params_list_cmd.descr="Mark a item in above list before pressing [" .. config.params_list_cmd.value .. "]"
-- Add button
config.interfaces_list_cmd = cfe ({
@@ -104,7 +112,7 @@ function config(self)
type="submit",
disabled="yes",
})
- config.zones_list_cmd.descr="Mark a item in above list before pressing [" .. config.zones_list_cmd.value .. "]"
+ config.policies_list_cmd.descr="Mark a item in above list before pressing [" .. config.policies_list_cmd.value .. "]"
-- Add button
config.rules_list_cmd = cfe ({
@@ -114,7 +122,7 @@ function config(self)
type="submit",
disabled="yes",
})
- config.zones_list_cmd.descr="Mark a item in above list before pressing [" .. config.zones_list_cmd.value .. "]"
+ config.rules_list_cmd.descr="Mark a item in above list before pressing [" .. config.rules_list_cmd.value .. "]"
-- Management buttons
-- Display management buttons
@@ -125,77 +133,10 @@ function config(self)
config=config,
management = management,
- }
-end
-
---[=[
-function config(self)
- local cmdmanagement, cmdmanagementresult
- local cmdsavereply = {}
- local cmdsaveresult = {}
- if ( self.clientdata.cmdmanagement) then
- cmdmanagement = cfe({
- name="cmdmanagement",
- value=string.lower(self.clientdata.cmdmanagement),
- })
- cmdmanagementresult, cmdmanagement = self.model:startstop_service( cmdmanagement )
- end
- if ( self.clientdata.cmdsave) then
- local variables="logfile loglevel smallerlogs maxsize numrotate localandnetworklog remotelogging" -- Advanced-config options
--- local variables="remotelogging" -- Guided-config options
- for var in string.gmatch(variables, "%S+") do
- -- Send nil instead of "" causes the parameter to be removed/deleted/empty/unset the variable in the config-file
- if (self.clientdata[var] == "") then self.clientdata[var] = nil end
- cmdsaveresult[var], cmdsavereply[var] = self.model:setconfigs( var,self.clientdata[var] )
- end
- end
-
- local status = getstatus(self)
- local config = self.model.getconfig()
+ clientdata=clientdata,
- -- Write out erros from previous cmdsave actions
- for k,v in pairs(cmdsaveresult) do
- if not (v) then
- config[k]["errtxt"] = tostring(cmdsavereply[k]["errtxt"])
- end
- end
-
- -- Display save button
- config.cmdsave = displaycmdsave()
-
- -- Management buttons
- local disablestart,disablestop,disablerestart
- -- Disable management buttons based on if the process is running or not
- if (string.lower(status.status.value) == "enabled" ) then
- disablestart = "yes"
- else
- disablestop = "yes"
- end
- -- Disable management buttons if there exist errors in the config
- for k,v in pairs(config) do
- if (config[k]["errtxt"] ~= "") then
- disablestart = "yes"
- disablestop = "yes"
- disablerestart = "yes"
- break
- end
- end
- -- Display management buttons
- local management = displaycmdmanagement(disablestart,disablestop,disablerestart)
-
- return {
- option={ script=ENV["SCRIPT_NAME"],
- prefix=self.conf.prefix,
- controller = self.conf.controller,
- action = "config", },
- status = status,
- cmdmanagement = cmdmanagement,
- management = management,
- config = config,
- debugclientdata = self.clientdata,
}
end
---]=]
function check(self)
local cmdmanagement, cmdmanagementresult
@@ -207,40 +148,9 @@ function check(self)
cmdmanagementresult, cmdmanagement = self.model:startstop_service( cmdmanagement )
end
---[[
- -- Save changes
- local modifications = self.clientdata.filecontent or ""
- if ( self.clientdata.cmdsave) then
- modifications = self.model:updatefilecontent(modifications)
- end
---]]
-
- local status = getstatus(self)
+ local status = self.model.getstatus()
local config = self.model:configcheck()
-
- -- Display save button
--- config.cmdsave = displaycmdsave()
-
---[[
- -- Management buttons
- local disablestart,disablestop,disablerestart
- -- Disable management buttons based on if the process is running or not
- if (string.lower(status.status.value) == "enabled" ) then
- disablestart = "yes"
- else
- disablestop = "yes"
- end
- -- Disable management buttons if there exist errors in the config
- for k,v in pairs(config) do
- if (config[k]["errtxt"] ~= "") then
- disablestart = "yes"
- disablestop = "yes"
- disablerestart = "yes"
- break
- end
- end
---]]
-- Display management buttons
local management = displaycmdmanagement(disablestart,disablestop,disablerestart)
@@ -269,43 +179,9 @@ function logfile(self)
cmdmanagementresult, cmdmanagement = self.model:startstop_service( cmdmanagement )
end
---[[
- -- Save changes
- local modifications = self.clientdata.filecontent or ""
- if ( self.clientdata.cmdsave) then
- modifications = self.model:updatefilecontent(modifications)
- end
---]]
- local status = getstatus(self)
+ local status = self.model.getstatus()
local config = self.model:getlogfile()
-
- -- Display save button
--- config.cmdsave = displaycmdsave()
-
---[[
- -- Management buttons
- local disablestart,disablestop,disablerestart
- -- Disable management buttons based on if the process is running or not
- if (string.lower(status.status.value) == "enabled" ) then
- disablestart = "yes"
- else
- disablestop = "yes"
- end
- -- Disable management buttons if there exist errors in the config
- for k,v in pairs(config) do
- if (config[k]["errtxt"] ~= "") then
- disablestart = "yes"
- disablestop = "yes"
- disablerestart = "yes"
- break
- end
- end
-
- -- Display management buttons
- local management = displaycmdmanagement(disablestart,disablestop,disablerestart)
---]]
-
return {
option={ script=ENV["SCRIPT_NAME"],
prefix=self.conf.prefix,
@@ -331,43 +207,9 @@ function expert(self)
cmdmanagementresult, cmdmanagement = self.model:startstop_service( cmdmanagement )
end
---[[
- -- Save changes
- local modifications = self.clientdata.filecontent or ""
- if ( self.clientdata.cmdsave) then
- modifications = self.model:updatefilecontent(modifications)
- end
---]]
- local status = getstatus(self)
+ local status = self.model.getstatus()
local config = self.model:getfilelist()
-
- -- Display save button
--- config.cmdsave = displaycmdsave()
-
---[[
- -- Management buttons
- local disablestart,disablestop,disablerestart
- -- Disable management buttons based on if the process is running or not
- if (string.lower(status.status.value) == "enabled" ) then
- disablestart = "yes"
- else
- disablestop = "yes"
- end
- -- Disable management buttons if there exist errors in the config
- for k,v in pairs(config) do
- if (config[k]["errtxt"] ~= "") then
- disablestart = "yes"
- disablestop = "yes"
- disablerestart = "yes"
- break
- end
- end
-
- -- Display management buttons
- local management = displaycmdmanagement(disablestart,disablestop,disablerestart)
---]]
-
return {
option={ script=ENV["SCRIPT_NAME"],
prefix=self.conf.prefix,
@@ -393,15 +235,14 @@ function edit(self)
cmdmanagementresult, cmdmanagement = self.model:startstop_service( cmdmanagement )
end
----[[
-- Save changes
if ( self.clientdata.cmdsave) then
local filetochange = cfe ({ name=self.clientdata.filename, value=self.clientdata.filecontent, })
modifications = self.model:updatefilecontent(filetochange)
self.clientdata.name = self.clientdata.filename
end
---]]
- local status = getstatus(self)
+
+ local status = self.model.getstatus()
local config = self.model:getfiledetails(cfe({
name="editfile",
value=self.clientdata.name,
@@ -410,28 +251,6 @@ function edit(self)
-- Display save button
config.cmdsave = displaycmdsave()
---[[
- -- Management buttons
- local disablestart,disablestop,disablerestart
- -- Disable management buttons based on if the process is running or not
- if (string.lower(status.status.value) == "enabled" ) then
- disablestart = "yes"
- else
- disablestop = "yes"
- end
- -- Disable management buttons if there exist errors in the config
- for k,v in pairs(config) do
- if (config[k]["errtxt"] ~= "") then
- disablestart = "yes"
- disablestop = "yes"
- disablerestart = "yes"
- break
- end
- end
-
- -- Display management buttons
- local management = displaycmdmanagement(disablestart,disablestop,disablerestart)
---]]
return {
option={ script=ENV["SCRIPT_NAME"],
@@ -448,3 +267,11 @@ function edit(self)
}
end
+
+function edit_params(self)
+
+
+ return {
+ status=status,
+ }
+end