module(..., package.seeall) -- Load libraries require("controllerfunctions") local checkboxes = { "PermitRootLogin", "PasswordAuthentication", "UseDNS" } default_action = "status" function status(self) return self.model.getstatus() end function config(self) local output = {} local errtxt = {} local successfuledit if (self.clientdata.cmdsave) then local fields = { "Port", "ListenAddress", "PermitRootLogin", "PasswordAuthentication", "UseDNS", } local newconfig = {} for _ , v in pairs(fields) do newconfig[v] = self.clientdata[v] or "" end successfuledit, errtxt = self.model.write_config(newconfig) end local config = self.model.read_config() or {} output.cmdsave = cfe({ name="cmdsave", label="Save above changes", value="Apply", type="submit", }) output.Port = cfe({ name="Port", label="Port", value=config.Port, }) output.ListenAddress = cfe({ name="ListenAddress", label="Listen address", value=config.ListenAddress, }) output.PermitRootLogin = cfe({ name="PermitRootLogin", label="Permit Root Login", }) output.PasswordAuthentication = cfe({ name="PasswordAuthentication", label="Password Authentication", }) output.UseDNS = cfe({ name="UseDNS", label="Use DNS", }) -- Display checkboxes checked/unchecked for k,v in pairs(checkboxes) do output[v]['value']="yes" output[v]['type']="checkbox" if (config[v]) and (string.lower(tostring(config[v] or "")) == "yes") then output[v]['checked']="yes" end end -- Display results of previous save action if (self.clientdata.cmdsave) and not (successfuledit) then for k,v in pairs(self.clientdata) do if (output) and (output[k]) and (k) then output[k]['value'] = self.clientdata[k] output[k]['errtxt'] = errtxt[k] end end output.cmdsave.errtxt = "Save action was canceled because there was invalid input." elseif (self.clientdata.cmdsave) and (successfuledit) then output.cmdsave.descr = "* Configuration was succesfully saved" end return output end function startstop(self) return controllerfunctions.handle_startstop(self, self.model.startstop_service, self.model.getstatus, self.clientdata) end function expert(self) return controllerfunctions.handle_form(self, self.model.getconfigfile, self.model.setconfigfile, self.clientdata, "Save", "Edit Config", "Configuration Saved") end function connectedpeers(self) return self.model.list_conn_peers() end function welcome(self) end