summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--openvpn-controller.lua32
-rw-r--r--openvpn-model.lua40
2 files changed, 38 insertions, 34 deletions
diff --git a/openvpn-controller.lua b/openvpn-controller.lua
index 6c69253..0efa765 100644
--- a/openvpn-controller.lua
+++ b/openvpn-controller.lua
@@ -1,52 +1,54 @@
-module (..., package.seeall)
+local mymodule = {}
-mvc = {}
-mvc.on_load = function(self, parent)
+mymodule.mvc = {}
+mymodule.mvc.on_load = function(self, parent)
self.model.set_processname(string.match(self.conf.prefix, "[^/]+"))
end
-default_action = "status"
+mymodule.default_action = "status"
-status = function(self)
+mymodule.status = function(self)
return self.model.getstatus()
end
-startstop = function(self)
+mymodule.startstop = function(self)
return self.handle_form(self, self.model.get_startstop, self.model.startstop_service, self.clientdata)
end
-expert = function(self)
+mymodule.expert = function(self)
return self.handle_form(self, self.model.get_filecontent, self.model.update_filecontent, self.clientdata, "Save", "Edit Config File", "Config File Saved")
end
-viewconfig = function(self)
+mymodule.viewconfig = function(self)
return self.model.get_config()
end
-statusinfo = function (self)
+mymodule.statusinfo = function (self)
return self.model.getclientinfo()
end
-logfile = function (self)
+mymodule.logfile = function (self)
return self.model.get_logfile()
end
-function listcerts(self)
+function mymodule.listcerts(self)
return self.model.list_certs()
end
-function deletecert(self)
+function mymodule.deletecert(self)
return self.handle_form(self, self.model.get_delete_cert, self.model.delete_cert, self.clientdata, "Delete", "Delete Certificate", "Certificate Deleted")
end
-function uploadcert (self)
+function mymodule.uploadcert (self)
return self.handle_form(self, self.model.new_upload_cert, self.model.upload_cert, self.clientdata, "Upload", "Upload Certificate", "Certificate Uploaded")
end
-function viewcert(self)
+function mymodule.viewcert(self)
return self.model.view_cert(self.clientdata.cert)
end
-function generatedhparams(self)
+function mymodule.generatedhparams(self)
return self.handle_form(self, self.model.get_generate_dh_params, self.model.generate_dh_params, self.clientdata, "Generate", "Generate Diffie Hellman parameters", "Diffie Hellman parameters generated")
end
+
+return mymodule
diff --git a/openvpn-model.lua b/openvpn-model.lua
index 4abeef0..66ce958 100644
--- a/openvpn-model.lua
+++ b/openvpn-model.lua
@@ -1,4 +1,4 @@
-module (..., package.seeall)
+local mymodule = {}
modelfunctions = require("modelfunctions")
posix = require("posix")
@@ -14,7 +14,7 @@ local configfile = "/etc/openvpn/openvpn.conf"
local baseurl = "/etc/openvpn/"
local certurl = "/etc/openvpn/openvpn_certs/"
-function set_processname(p)
+function mymodule.set_processname(p)
processname = p
configfile = "/etc/openvpn/"..processname..".conf"
certurl = "/etc/openvpn/"..processname.."_certs/"
@@ -157,24 +157,24 @@ end
-- ################################################################################
-- PUBLIC FUNCTIONS
-function getstatus()
+function mymodule.getstatus()
return modelfunctions.getstatus(processname, packagename, "OpenVPN Status")
end
-function get_startstop(self, clientdata)
+function mymodule.get_startstop(self, clientdata)
return modelfunctions.get_startstop(processname)
end
-function startstop_service(self, startstop, action)
+function mymodule.startstop_service(self, startstop, action)
return modelfunctions.startstop_service(startstop, action)
end
-function getclientinfo()
+function mymodule.getclientinfo()
local config = config_content(configfile)
return cfe({ type="structure", value=clientlist(config.status), label="Client info" })
end
-function get_config()
+function mymodule.get_config()
local config = config_content(configfile)
check_valid_config(config)
if config.type == "server" then
@@ -186,22 +186,22 @@ function get_config()
return cfe({ type="structure", value=config, label="OpenVPN Config" })
end
-function get_logfile(f)
+function mymodule.get_logfile(f)
local config = config_content(configfile)
return cfe({ value=config.log or "", label="Log file" })
end
-function get_filecontent()
+function mymodule.get_filecontent()
--FIXME validate
return modelfunctions.getfiledetails(configfile)
end
-function update_filecontent(self, filedetails)
+function mymodule.update_filecontent(self, filedetails)
--FIXME validate
return modelfunctions.setfiledetails(self, filedetails, {configfile})
end
-function list_certs()
+function mymodule.list_certs()
local list = {}
for file in fs.find(".*%.pem", certurl) do
list[#list+1] = file
@@ -209,14 +209,14 @@ function list_certs()
return cfe({ type="list", value=list, label="OpenVPN Certificates" })
end
-function get_delete_cert(self, clientdata)
+function mymodule.get_delete_cert(self, clientdata)
local retval = {}
retval.cert = cfe({ value=clientdata.cert or "", label="Certificate Local Name" })
return cfe({ type="group", value=retval, label="Delete Certificate" })
end
-function delete_cert(self, delcert)
- local list = list_certs()
+function mymodule.delete_cert(self, delcert)
+ local list = mymodule.list_certs()
delcert.value.cert.errtxt = "Invalid cert name"
delcert.errtxt = "Failed to delete certificate"
for i,cert in ipairs(list.value) do
@@ -230,7 +230,7 @@ function delete_cert(self, delcert)
return delcert
end
-function new_upload_cert()
+function mymodule.new_upload_cert()
local value = {}
value.cert = cfe({ type="raw", value=0, label="Certificate", descr='File must be a password protected ".pfx" file' })
value.password = cfe({ label="Certificate Password" })
@@ -238,7 +238,7 @@ function new_upload_cert()
return cfe({ type="group", value=value })
end
-function upload_cert(self, newcert)
+function mymodule.upload_cert(self, newcert)
local success = true
-- Trying to upload a cert/key
-- The way haserl works, cert contains the temporary file name
@@ -304,7 +304,7 @@ function upload_cert(self, newcert)
return newcert
end
-view_cert = function(certname)
+mymodule.view_cert = function(certname)
local cmdresult = "Invalid cert name"
local errtxt
if not string.find(certname, "/") then
@@ -317,12 +317,14 @@ view_cert = function(certname)
return cfe({ type="table", value={name=certname, value=cmdresult}, label="Certificate", errtxt=errtxt })
end
-get_generate_dh_params = function(self, clientdata)
+mymodule.get_generate_dh_params = function(self, clientdata)
local retval = {}
return cfe({ type="group", value=retval, label="Generate Diffie Hellman parameters" })
end
-generate_dh_params = function(self, gen)
+mymodule.generate_dh_params = function(self, gen)
gen.descr, gen.errtxt = modelfunctions.run_executable({"openssl", "dhparam", "-out", certurl.."dh1024.pem", "1024"}, true)
return gen
end
+
+return mymodule