is_account= TRUE; } function execute() { $acl_writeable = preg_match("/w/",$this->parent->getacl("")); /* Check for iteraction */ if ($acl_writeable && isset($_POST['add_dns']) && $_POST['addserver'] != ""){ if (!preg_match('/^[0-9a-z.-]+$/', get_post('addserver'))){ msg_dialog::display(_("Error"), msgPool::invalid(_("Name"), htmlentities(get_post('addserver')),"/[0-9a-z.-]/"), ERROR_DIALOG); } else { $servers= array(); if($this->options->exists('domain-name-servers')){ foreach(split(",", $this->options->get('domain-name-servers')) as $val){ $servers[$val]= $val; } } $servers[get_post('addserver')]= get_post('addserver'); $tmp= ""; foreach($servers as $val){ $tmp.= $val.","; } $this->options->removeAll('domain-name-servers'); $this->options->set('domain-name-servers',preg_replace('/,$/', '', $tmp)); } } if ($acl_writeable && isset($_POST['delete_dns']) && isset($_POST['dnsserver'])){ $tmp= preg_replace("/(\s*,\s*)?".get_post('dnsserver')."/i", '', $this->options->get('domain-name-servers')); $tmp= preg_replace("/(\s*)?,(\s*)?$/", '', $tmp); if ($tmp != ""){ $this->options->set('domain-name-servers', $tmp); } else { $this->options->remove('domain-name-servers'); } } /* Show main page */ $smarty= get_smarty(); /* Assign ACLs */ $smarty->assign("acl",$this->parent->getacl("")); /* * Assemble options */ /* Router */ $smarty->assign("routers", $this->options->get('routers')); /* DNS */ $smarty->assign("domain",$this->options->get('domain-name')); if($this->options->exists('domain-name-servers')){ $servers= array(); foreach(split(",", $this->options->get('domain-name-servers')) as $val){ $servers[$val]= $val; } $smarty->assign("dnsservers", $servers); } else { $smarty->assign("dnsservers", ""); } /* Netmask / Broadcast */ if ($this->options->exists('subnet-mask')){ $this->options->removeAll('subnet-mask'); $this->options->set('subnet-mask',normalize_netmask($this->options->get('subnet-mask'))); } $smarty->assign("subnet_mask", $this->options->get('subnet-mask')); $smarty->assign("broadcast_address", $this->options->get('broadcast-address')); /* Boot stuff */ if (isset($this->statements['filename'])){ $smarty->assign("filename", trim($this->statements['filename'], '"')); } else { $smarty->assign("filename", ""); } if (isset($this->statements['next-server'])){ $smarty->assign("nextserver", $this->statements['next-server']); } else { $smarty->assign("nextserver", ""); } /* Set flags */ $smarty->assign("autohost", ""); if (isset($this->statements['get-lease-hostnames'])){ if (preg_match('/^(true|on|yes)$/', $this->statements['get-lease-hostnames'])){ $smarty->assign("autohost", "checked"); } } $smarty->assign("autohostdecl", ""); if (isset($this->statements['use-host-decl-names'])){ if (preg_match('/^(true|on|yes)$/', $this->statements['use-host-decl-names'])){ $smarty->assign("autohostdecl", "checked"); } } return $smarty->fetch(get_template_path('dhcp_network.tpl', TRUE,dirname(__FILE__))); } function remove_from_parent() { } /* Save data to object */ function save_object() { /* Only save, if we are "active" */ if (isset($_POST['routers']) && preg_match("/w/",$this->parent->getacl(""))){ /* * Assemble options */ /* Options */ foreach (array("routers" => "routers", "domain-name" => "domain", "subnet-mask" => "subnet_mask", "broadcast-address" => "broadcast_address") as $key => $val){ if ($_POST["$val"] == ''){ $this->options->remove($key); } else { $this->options->set($key,get_post($val)); } } /* Statements */ foreach (array("filename" => "filename", "next-server" => "nextserver") as $key => $val){ if ($_POST["$val"] == ''){ unset($this->statements["$key"]); } else { /* Only quote filename values */ if(in_array($key,array("filename"))){ $this->statements["$key"]= '"'.get_post("$val").'"'; }else{ $this->statements["$key"]= get_post("$val"); } } } /* Flags */ if (isset ($_POST['autohost'])){ $this->statements['get-lease-hostnames']= "true"; } else { unset($this->statements['get-lease-hostnames']); } if (isset ($_POST['autohostdecl'])){ $this->statements['use-host-decl-names']= "on"; } else { unset($this->statements['use-host-decl-names']); } } } /* Check values */ function check() { $message= array(); /* Check netmask and broadcast */ foreach(array("subnet-mask" => _("Netmask"), "broadcast-address" => _("Broadcast")) as $key => $typ){ if (!$this->options->exists("$key")){ continue; } if (!tests::is_ip($this->options->get($key))){ $message[]= sprintf(_("Error in definition of '%s'!"), $typ); } } return $message; } /* Save to LDAP */ function save() { } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>