diff options
Diffstat (limited to 'ipsectools-model.lua')
-rw-r--r-- | ipsectools-model.lua | 44 |
1 files changed, 31 insertions, 13 deletions
diff --git a/ipsectools-model.lua b/ipsectools-model.lua index 01f526a..568375c 100644 --- a/ipsectools-model.lua +++ b/ipsectools-model.lua @@ -163,18 +163,25 @@ function list_certs() return cfe({ type="list", value=list, label="IPSEC Certificates" }) end -function delete_cert(certname) +function get_delete_cert(self, clientdata) + local retval = {} + retval.cert = cfe({ value=clientdata.cert or "", label="IPSEC Certificate" }) + return cfe({ type="group", value=retval, label="Delete Certificate" }) +end + +function delete_cert(self, delcert) local list = list_certs() - local retval = cfe({ label="Delete Certificate result", errtxt="Invalid cert name" }) + delcert.value.cert.errtxt = "Invalid cert name" + delcert.errtxt = "Failed to delete Certificate" for i,cert in ipairs(list.value) do - if cert == certname then - os.remove(baseurl..certname) - retval.value = "Certificate deleted" - retval.errtxt = nil + if cert == delcert.value.cert.value then + os.remove(baseurl..cert) + delcert.value.cert.errtxt = nil + delcert.errtxt = nil break end end - return retval + return delcert end function new_upload_cert() @@ -260,16 +267,27 @@ function upload_cert(self, newcert) return newcert end -view_cert = function(certname) +function get_view_cert(self, clientdata) + local retval = {} + retval.cert = cfe({ value=clientdata.cert or "", label="IPSEC Certificate" }) + return cfe({ type="group", value=retval, label="View Certificate" }) +end + +view_cert = function(self, viewcert) local list = list_certs() - local cmdresult = "Invalid cert name" + viewcert.value.cert.errtxt = "Invalid cert name" + viewcert.errtxt = "Failed to find cert" for i,cert in ipairs(list.value) do - if cert == certname then - local cmd = path .. "openssl x509 -in "..baseurl..format.escapespecialcharacters(certname).." -noout -text" + if cert == viewcert.value.cert.value then + local cmd = path .. "openssl x509 -in "..baseurl..format.escapespecialcharacters(cert).." -noout -text" local f = io.popen(cmd) - cmdresult = f:read("*a") + local cmdresult = f:read("*a") f:close() + viewcert.value.result = cfe({ type="longtext", value=cmdresult, label="Certificate", readonly=true }) + viewcert.errtxt = nil + viewcert.value.cert.errtxt = nil + break end end - return cfe({ type="table", value={name=certname, value=cmdresult}, label="Certificate" }) + return viewcert end |