-- the squid controller module (..., package.seeall) default_action = "status" dep = function( self ) if self.model.dependancy_ok() then redirect(self) end if self.clientdata.cmd then if self.clientdata.cmd == "create file" then self.model.create_cfg_from_template() redirect(self) end end return end status = function( self ) local info = { status=self.model.get_status(), version = self.model.get_squid_version(), autostart = self.model.get_autostart(), srvctrl = { value = srvctrl} } local option = { script = self.conf.script, prefix = self.conf.prefix, controller = self.conf.controller, action = self.conf.action, extra = "" } return ( cfe ({ option = option, info = info }) ) end basic = function( self ) local service = {} if self.clientdata.srvcmd then local srvcmd = self.clientdata.srvcmd if srvcmd == "start" or srvcmd == "stop" or srvcmd == "restart" then service.srvcmdresult, service.message = self.model.service_control( srvcmd ) end end local info = { status=self.model.get_status(), version = self.model.get_squid_version(), autostart = self.model.get_autostart(), srvctrl = { value = srvctrl} } local option = { script = self.conf.script, prefix = self.conf.prefix, controller = self.conf.controller, action = self.conf.action, extra = "" } if not self.model.dependancy_ok() then redirect(self, "dep") end if self.clientdata.cmd then local cmd = self.clientdata.cmd if cmd == "save" then local newconfig = { proxyip = { value=self.clientdata.proxyip, type="text", label="" }, proxyport = { value=self.clientdata.proxyport, type="text", label="" }, filterip = { value=self.clientdata.filterip, type="text", label="" }, filterport = { value=self.clientdata.filterport, type="text", label="" }, filterregex = { value=self.clientdata.filterregex, type="text", label="" }, safeports = { value=self.clientdata.safeports, type="text", label="" }, sslports = { value=self.clientdata.sslports, type="text", label="" }, accesslog = { value=self.clientdata.accesslog, type="select", label="", option={ "yes", "no" } }, diskcache = { value=self.clientdata.diskcache, type="select", label="", option={ "yes", "no" } }, authmethod = { value=self.clientdata.authmethod, type="text", label="" } } self.model.update_basic_config( newconfig ) end end service.status = self.model.get_status() service.config, service.error = self.model.get_basic_config() return ( cfe ({ option = option, service = service, info = info }) ) end authentication = function( self ) local service = {} if self.clientdata.srvcmd then local srvcmd = self.clientdata.srvcmd if srvcmd == "start" or srvcmd == "stop" or srvcmd == "restart" then service.srvcmdresult, service.message = self.model.service_control( srvcmd ) end end local info = { status=self.model.get_status(), version = self.model.get_squid_version(), autostart = self.model.get_autostart(), srvctrl = { value = srvctrl} } local option = { script = self.conf.script, prefix = self.conf.prefix, controller = self.conf.controller, action = self.conf.action, extra = "" } if self.clientdata.inout then local newauth = "" if self.clientdata.inout == " << " then if self.clientdata.tmpempty then newauth = self.clientdata.authmethod .. self.clientdata.tmpempty else newauth = self.clientdata.authmethod end elseif self.clientdata.inout == " >> " then local tmpauth = self.clientdata.authmethod local lap = 1 while lap <= #tmpauth do if string.sub( tmpauth, lap, lap ) ~= self.clientdata.tmpauth then newauth = newauth .. string.sub( tmpauth, lap, lap ) end lap = lap + 1 end end self.model.upd_authmethod(newauth) end service.status = self.model.get_status() service.config, service.error = self.model.get_basic_config() return ( cfe ({ option = option, service = service, info = info, mdebug=self.clientdata }) ) end advanced = function( self ) local service = {} if self.clientdata.srvcmd then local srvcmd = self.clientdata.srvcmd if srvcmd == "start" or srvcmd == "stop" or srvcmd == "restart" then service.srvcmdresult, service.message = self.model.service_control( srvcmd ) end end local info = { status=self.model.get_status(), version = self.model.get_squid_version(), autostart = self.model.get_autostart(), srvctrl = { value = srvctrl} } local option = { script = self.conf.script, prefix = self.conf.prefix, controller = self.conf.controller, action = self.conf.action, extra = "" } if self.clientdata.cmd then if self.clientdata.cmd == "save" then service.message = self.model.update_adv_config( self.clientdata.config ) end end service.status = self.model.get_status() service.config = self.model.get_adv_config() return ( cfe ({ option = option, service = service, info = info }) ) end digest = function( self ) local option = { script = self.conf.script, prefix = self.conf.prefix, controller = self.conf.controller, action = self.conf.action, extra = "" } local service = { message="", status="", config="" } if self.clientdata.cmd then if self.clientdata.cmd == "save" then service.message = self.model.update_digest_userlist( self.clientdata.userlist ) end end service.config = self.model.get_digest_userlist() return ( cfe ({ option = option, service = service }) ) end saccess = function( self ) local option = { script = self.conf.script, prefix = self.conf.prefix, controller = self.conf.controller, action = self.conf.action, extra = "" } local service = { message="", status="", config="" } if self.clientdata.cmd then if self.clientdata.cmd == "save" then local config = {} config.s_ip = self.clientdata.s_ip config.s_browser = self.clientdata.s_browser config.s_domain = self.clientdata.s_domain service.message = self.model.update_saccess( config ) end end service.config = self.model.get_saccess() return ( cfe ({ option = option, service = service }) ) end