small-package/luci-app-ikoolproxy/luasrc/model/cbi/koolproxy/cert.lua

71 lines
1.6 KiB
Lua
Raw Normal View History

2022-02-12 15:40:06 +08:00
o = Map("koolproxy")
t = o:section(TypedSection, "global",translate("证书恢复"))
t.description = translate("上传恢复已备份的证书文件名必须为koolproxyCA.tar.gz")
t.anonymous = true
e = t:option(DummyValue, "c1status")
e = t:option(FileUpload, "")
e.template = "koolproxy/caupload"
e = t:option(DummyValue,"",nil)
e.template = "koolproxy/cadvalue"
if nixio.fs.access("/usr/share/koolproxy/data/certs/ca.crt") then
t = o:section(TypedSection, "global",translate("证书备份"))
t.description = translate("下载备份的证书")
t.anonymous = true
e = t:option(DummyValue,"c2status")
e = t:option(Button,"certificate")
e.inputtitle = translate("下载证书备份")
e.inputstyle = "reload"
e.write = function()
luci.sys.call("/usr/share/koolproxy/camanagement backup 2>&1 >/dev/null")
Download()
luci.http.redirect(luci.dispatcher.build_url("admin","services","koolproxy"))
end
end
function Download()
local t,e
t = nixio.open("/tmp/upload/koolproxyca.tar.gz","r")
luci.http.header('Content-Disposition', 'attachment; filename="koolproxyCA.tar.gz"')
luci.http.prepare_content("application/octet-stream")
while true do
e = t:read(nixio.const.buffersize)
if (not e) or (#e==0) then
break
else
luci.http.write(e)
end
end
t:close()
luci.http.close()
end
local t,e
t = "/tmp/upload/"
nixio.fs.mkdir(t)
luci.http.setfilehandler(
function(o,a,i)
if not e then
if not o then return end
e = nixio.open(t..o.file,"w")
if not e then
return
end
end
if a and e then
e:write(a)
end
if i and e then
e:close()
e = nil
luci.sys.call("/usr/share/koolproxy/camanagement restore 2>&1 >/dev/null")
end
end
)
return o