module(..., package.seeall) -- Load libraries require("modelfunctions") processinfo = require("acf.processinfo") fs = require("acf.fs") format = require("acf.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(self, filedetails) return modelfunctions.setfiledetails(self, 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(self, 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 get_kdestroy() return cfe({ type="group", value={}, label="Destroy Tickets" }) end function kdestroy(self, kd) local cmd = path.."kdestroy" local f = io.popen(cmd) kd.descr = f:read("*a") or "" f:close() if kd.descr == "" then kd.descr = "Successfully Destroyed Tickets" end return kd end