diff options
-rw-r--r-- | openvpn-controller.lua | 32 | ||||
-rw-r--r-- | openvpn-model.lua | 40 |
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 |