diff options
-rw-r--r-- | tinydns-controller.lua | 50 | ||||
-rw-r--r-- | tinydns-model.lua | 48 |
2 files changed, 51 insertions, 47 deletions
diff --git a/tinydns-controller.lua b/tinydns-controller.lua index cd623b3..9af5d36 100644 --- a/tinydns-controller.lua +++ b/tinydns-controller.lua @@ -1,55 +1,55 @@ -module(..., package.seeall) +local mymodule = {} validator = require("acf.validator") -mvc = {} -mvc.on_load = function(self, parent) +mymodule.mvc = {} +mymodule.mvc.on_load = function(self, parent) self.model.set_processname(string.match(self.conf.prefix, "[^/]+")) end -default_action = "status" +mymodule.default_action = "status" -function status(self) +function mymodule.status(self) return self.model.getstatus() end -function view(self) - return self.model.getconfigobjects(self, self.clientdata.filename, sessiondata.userinfo.userid) +function mymodule.view(self) + return self.model.getconfigobjects(self, self.clientdata.filename, self.sessiondata.userinfo.userid) end -function startstop(self) +function mymodule.startstop(self) return self.handle_form(self, self.model.get_startstop, self.model.startstop_service, self.clientdata) end -function config(self) +function mymodule.config(self) return self.handle_form(self, self.model.getconfig, self.model.setconfig, self.clientdata, "Save", "Edit Configuration", "Configuration Saved") end -function newfile(self) +function mymodule.newfile(self) return self.handle_form(self, self.model.getnewconfigfile, function(self, value) - return self.model.createconfigfile(self, value, sessiondata.userinfo.userid) + return self.model.createconfigfile(self, value, self.sessiondata.userinfo.userid) end, self.clientdata, "Create", "Create New Config File", "Config File Created") end -function listfiles(self) - local configfiles = self.model.getfilelist(self, sessiondata.userinfo.userid) +function mymodule.listfiles(self) + local configfiles = self.model.getfilelist(self, self.sessiondata.userinfo.userid) local config = {} for k,v in pairs(configfiles.value) do - local filedetails = self.model.get_filedetails(self, v, sessiondata.userinfo.userid) + local filedetails = self.model.get_filedetails(self, v, self.sessiondata.userinfo.userid) table.insert(config,filedetails) end return cfe({ type="list", value=config, label="Config files" }) end -function edit(self) - return editfile(self) +function mymodule.edit(self) + return mymodule.editfile(self) end -function editfile(self) +function mymodule.editfile(self) config = self.handle_form(self, function() - return self.model.get_filedetails(self, self.clientdata.filename, sessiondata.userinfo.userid) + return self.model.get_filedetails(self, self.clientdata.filename, self.sessiondata.userinfo.userid) end, function(self, value) - return self.model.set_filedetails(self, value, sessiondata.userinfo.userid) + return self.model.set_filedetails(self, value, self.sessiondata.userinfo.userid) end, self.clientdata, "Save", "Edit Config File", "Config File Saved") if self.clientdata.linenumber and validator.is_integer(self.clientdata.linenumber) then @@ -58,22 +58,24 @@ function editfile(self) return config end -function delete(self) - return self.handle_form(self, self.model.get_remove_file, function(self, value) return self.model.remove_file(self, value, sessiondata.userinfo.userid) end, self.clientdata, "Delete", "Delete Config File", "Config File deleted") +function mymodule.delete(self) + return self.handle_form(self, self.model.get_remove_file, function(self, value) return self.model.remove_file(self, value, self.sessiondata.userinfo.userid) end, self.clientdata, "Delete", "Delete Config File", "Config File deleted") end -function listpermissions(self) +function mymodule.listpermissions(self) return self.model:getpermissionslist() end -function edituserpermissions(self) +function mymodule.edituserpermissions(self) return self.handle_form(self, function() return self.model:getuserpermissions(self.clientdata.userid) end, self.model.setuserpermissions, self.clientdata, "Save", "Edit User Permissions", "User permissions set") end -function editrolepermissions(self) +function mymodule.editrolepermissions(self) return self.handle_form(self, function() return self.model:getrolepermissions(self.clientdata.role) end, self.model.setrolepermissions, self.clientdata, "Save", "Edit Role Permissions", "Role permissions set") end + +return mymodule diff --git a/tinydns-model.lua b/tinydns-model.lua index 1ef3bac..b44d45a 100644 --- a/tinydns-model.lua +++ b/tinydns-model.lua @@ -1,4 +1,4 @@ -module(..., package.seeall) +local mymodule = {} -- Load libraries modelfunctions = require("modelfunctions") @@ -49,7 +49,7 @@ local descr = { }, } -function set_processname(p) +function mymodule.set_processname(p) processname = p configfile = "/etc/conf.d/" .. processname configdir = "/etc/"..processname @@ -158,16 +158,16 @@ end -- ################################################################################ -- PUBLIC FUNCTIONS -function get_startstop(self, clientdata) +function mymodule.get_startstop(self, clientdata) return modelfunctions.get_startstop(processname) end -function startstop_service(self, startstop, action) +function mymodule.startstop_service(self, startstop, action) return modelfunctions.startstop_service(startstop, action) end -- Present some general status -function getstatus() +function mymodule.getstatus() local status = modelfunctions.getstatus(processname, packagename, "TinyDNS Status") status.value.configdir = cfe({ @@ -175,13 +175,13 @@ function getstatus() value=configdir, }) - local config = getconfig() + local config = mymodule.getconfig() status.value.listen = config.value.listen return status end -function getconfig() +function mymodule.getconfig() local config = {} local listenaddr = format.parse_ini_file(fs.read_file(configfile) or "","","IP") or "" @@ -197,7 +197,7 @@ function getconfig() return cfe({ type="group", value=config, label="TinyDNS Configuration" }) end -function setconfig(self, conf) +function mymodule.setconfig(self, conf) local test, errtxt = validator.is_ipv4(conf.value.listen.value) if not test then conf.value.listen.errtxt = errtxt @@ -211,7 +211,7 @@ end -- If you enter 'filter_type' (this should be one of the options found in local function check_signs() ) then -- the output will be filtered to only contain this type of data. -function getconfigobjects(self, file_name, userid, filter_type) +function mymodule.getconfigobjects(self, file_name, userid, filter_type) configfiles = searchforconfigfiles(self, userid) local configobjects = {} --Loop through all available configfiles @@ -269,28 +269,28 @@ function getconfigobjects(self, file_name, userid, filter_type) return cfe({ type="structure", value=configobjects, label="DNS Entries", filename=file_name, fieldlabels=descr.fieldlabels }) end -function getfilelist(self, userid) +function mymodule.getfilelist(self, userid) configfiles = searchforconfigfiles(self, userid) return cfe({ type="list", value=configfiles, label="List of config files" }) end -function get_filedetails(self, path, userid) +function mymodule.get_filedetails(self, path, userid) configfiles = searchforconfigfiles(self, userid) return modelfunctions.getfiledetails(path, validfilename) end -function set_filedetails (self, filedetails, userid) +function mymodule.set_filedetails (self, filedetails, userid) configfiles = searchforconfigfiles(self, userid) return modelfunctions.setfiledetails(self, filedetails, validfilename) end -function getnewconfigfile() +function mymodule.getnewconfigfile() local options = {} options.filename = cfe({ label="File Name" }) return cfe({ type="group", value=options, label="New config file" }) end -function createconfigfile(self, configfile, userid) +function mymodule.createconfigfile(self, configfile, userid) configfile.errtxt = "Failed to create file" local path = configfile.value.filename.value if not string.find(path, "/") then @@ -306,9 +306,9 @@ function createconfigfile(self, configfile, userid) -- We have to add this file to the allowed list, if there is one local allowed = getallowedlist(self, userid) if #allowed > 0 then - local perm = getuserpermissions(self, userid) + local perm = mymodule.getuserpermissions(self, userid) perm.value.allowed.value[#perm.value.allowed.value + 1] = path - setuserpermissions(self, perm) + mymodule.setuserpermissions(self, perm) end end else @@ -318,13 +318,13 @@ function createconfigfile(self, configfile, userid) return configfile end -function get_remove_file(self, clientdata) +function mymodule.get_remove_file(self, clientdata) local retval = {} retval.filename = cfe({ value=clientdata.filename or "", label="File Name" }) return cfe({ type="group", value=retval, label="Delete Config File" }) end -function remove_file(self, delfile, userid) +function mymodule.remove_file(self, delfile, userid) local path = delfile.value.filename.value configfiles = searchforconfigfiles(self, userid) delfile.errtxt = "Failed to delete file" @@ -339,7 +339,7 @@ function remove_file(self, delfile, userid) return delfile end -function getpermissionslist(self) +function mymodule.getpermissionslist(self) local auth = authenticator.get_subauth(self) local users = authenticator.list_users(self) local userlist = {} @@ -388,7 +388,7 @@ local function validaterolepermissions(self, rolepermissions) return success, rolepermissions end -function getuserpermissions(self, userid) +function mymodule.getuserpermissions(self, userid) local allowedlist = {} local auth = authenticator.get_subauth(self) local entry = auth.read_entry(self, authenticator.usertable, self.conf.prefix..self.conf.controller, userid) or "" @@ -406,7 +406,7 @@ function getuserpermissions(self, userid) return output end -function setuserpermissions(self, userpermissions) +function mymodule.setuserpermissions(self, userpermissions) local success, userpermissions = validateuserpermissions(self, userpermissions) if success then @@ -418,7 +418,7 @@ function setuserpermissions(self, userpermissions) return userpermissions end -function getrolepermissions(self, role) +function mymodule.getrolepermissions(self, role) local allowedlist = {} local auth = authenticator.get_subauth(self) local entry = auth.read_entry(self, authenticator.roletable, self.conf.prefix..self.conf.controller, role) or "" @@ -436,7 +436,7 @@ function getrolepermissions(self, role) return output end -function setrolepermissions(self, rolepermissions) +function mymodule.setrolepermissions(self, rolepermissions) local success, rolepermissions = validaterolepermissions(self, rolepermissions) if success then @@ -447,3 +447,5 @@ function setrolepermissions(self, rolepermissions) end return rolepermissions end + +return mymodule |