summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2012-07-30 22:40:21 +0000
committerTed Trask <ttrask01@yahoo.com>2012-07-30 22:40:21 +0000
commit14e744edc4d6ec4f2eb528262c495a2613862e0d (patch)
tree88d61d06caa251793ae98fb932907913f6566a79
parent17afeb7c5278b6cc6cc908a3e5c0544f905179df (diff)
downloadacf-ipsec-tools-14e744edc4d6ec4f2eb528262c495a2613862e0d.tar.bz2
acf-ipsec-tools-14e744edc4d6ec4f2eb528262c495a2613862e0d.tar.xz
Removed redirect_to_referrer and changed viewcert to a form
-rw-r--r--ipsectools-controller.lua4
-rw-r--r--ipsectools-listcerts-html.lsp4
-rw-r--r--ipsectools-model.lua44
-rw-r--r--ipsectools-viewcert-html.lsp10
4 files changed, 43 insertions, 19 deletions
diff --git a/ipsectools-controller.lua b/ipsectools-controller.lua
index f6d7e4f..6b51c57 100644
--- a/ipsectools-controller.lua
+++ b/ipsectools-controller.lua
@@ -27,7 +27,7 @@ function listcerts(self)
end
function deletecert(self)
- return self:redirect_to_referrer(self.model.delete_cert(self.clientdata.cert))
+ 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)
@@ -35,5 +35,5 @@ function uploadcert (self)
end
function viewcert(self)
- return self.model.view_cert(self.clientdata.cert)
+ return self.handle_form(self, self.model.get_view_cert, self.model.view_cert, self.clientdata, "View", "View Certificate")
end
diff --git a/ipsectools-listcerts-html.lsp b/ipsectools-listcerts-html.lsp
index ff8b133..542a7fd 100644
--- a/ipsectools-listcerts-html.lsp
+++ b/ipsectools-listcerts-html.lsp
@@ -15,9 +15,9 @@
<% for i,cert in ipairs(view.value) do %>
<TR>
<TD style="padding-right:20px;white-space:nowrap;">
- <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/deletecert?cert="..cert.."&redir="..page_info.orig_action, label="Delete "} %>
+ <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/deletecert?submit=true&cert="..cert, label="Delete "} %>
<% if not string.find(cert, "%-key") then %>
- <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/viewcert?cert="..cert.."&redir="..page_info.orig_action, label="View "} %>
+ <%= html.link{value=page_info.script..page_info.prefix..page_info.controller.."/viewcert?cert="..cert, label="View "} %>
<% end %>
</TD>
<TD style="white-space:nowrap;"><%= html.html_escape(cert) %></TD>
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
diff --git a/ipsectools-viewcert-html.lsp b/ipsectools-viewcert-html.lsp
index 1c87e92..a32ffb3 100644
--- a/ipsectools-viewcert-html.lsp
+++ b/ipsectools-viewcert-html.lsp
@@ -1,4 +1,10 @@
-<% local view, viewlibrary = ... %>
+<% local view, viewlibrary, page_info, session = ... %>
+<% require("htmlviewfunctions") %>
+<% if view.value.result then %>
<H1>Certificate Details</H1>
-<pre><%= html.html_escape(view.value.value) %></pre>
+<% htmlviewfunctions.displayitem(view.value.cert, 1, page_info) %>
+<pre><%= html.html_escape(view.value.result.value) %></pre>
+<% else
+ htmlviewfunctions.displayitem(view, 1, page_info)
+end %>