summaryrefslogtreecommitdiffstats
path: root/ipsectools-model.lua
diff options
context:
space:
mode:
Diffstat (limited to 'ipsectools-model.lua')
-rw-r--r--ipsectools-model.lua44
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