summaryrefslogtreecommitdiffstats
path: root/heimdal-model.lua
diff options
context:
space:
mode:
authorTed Trask <ttrask01@yahoo.com>2009-08-25 09:57:39 +0000
committerTed Trask <ttrask01@yahoo.com>2009-08-25 09:57:39 +0000
commit02edfdc22bcc86b1e68b9a11364ca91d448b0c1a (patch)
tree453bafbe532aa4733e395d74232d5b18813b5cc1 /heimdal-model.lua
downloadacf-heimdal-02edfdc22bcc86b1e68b9a11364ca91d448b0c1a.tar.bz2
acf-heimdal-02edfdc22bcc86b1e68b9a11364ca91d448b0c1a.tar.xz
Initial cut at heimdal ACF.v0.1.0
Diffstat (limited to 'heimdal-model.lua')
-rw-r--r--heimdal-model.lua78
1 files changed, 78 insertions, 0 deletions
diff --git a/heimdal-model.lua b/heimdal-model.lua
new file mode 100644
index 0000000..9845c10
--- /dev/null
+++ b/heimdal-model.lua
@@ -0,0 +1,78 @@
+module(..., package.seeall)
+
+-- Load libraries
+require("processinfo")
+require("modelfunctions")
+require("fs")
+require("format")
+
+-- Set variables
+local configfile = "/etc/krb5.conf"
+local packagename = "heimdal"
+
+local path = "PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin "
+
+-- ################################################################################
+-- LOCAL FUNCTIONS
+
+-- ################################################################################
+-- PUBLIC FUNCTIONS
+
+function getstatus()
+ local status = {}
+
+ local value, errtxt = processinfo.package_version(packagename)
+ status.version = cfe({
+ label="Program version",
+ value=value,
+ errtxt=errtxt,
+ name=packagename
+ })
+
+ return cfe({ type="group", value=status, label="Heimdal Status" })
+end
+
+function get_filedetails()
+ return modelfunctions.getfiledetails(configfile)
+end
+
+function update_filedetails(filedetails)
+ return modelfunctions.setfiledetails(filedetails, {configfile})
+end
+
+function get_kinit()
+ local value = {}
+ value.login = cfe({ label="KDC login" })
+ value.password = cfe({ label="KDC password" })
+ return cfe({ type="group", value=value, label="Kinit Parameters" })
+end
+
+function set_kinit(data)
+ local tmp = "/tmp/k"..os.time()
+ fs.write_file(tmp, data.value.password.value)
+ local cmd = path.."kinit --password-file="..tmp.." "..format.escapespecialcharacters(data.value.login.value).." 2>&1"
+ local f = io.popen(cmd)
+ data.descr = f:read("*a") or ""
+ f:close()
+ os.remove(tmp)
+ if data.descr == "" then data.descr = "Success" end
+ return data
+end
+
+function klist()
+ local cmd = path.."klist"
+ local f = io.popen(cmd)
+ local result = f:read("*a") or ""
+ f:close()
+ if result == "" then result = "No tickets found" end
+ return cfe({ value=result, label="List of Kerberos Tickets" })
+end
+
+function kdestroy()
+ local cmd = path.."kdestroy"
+ local f = io.popen(cmd)
+ local result = f:read("*a") or ""
+ f:close()
+ if result == "" then result = "Success" end
+ return cfe({ value=result, label="Result of kdestroy" })
+end