X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_termDNS.inc;h=fc55c61d73bbc67e2f7765b787c92accb2f5b258;hb=afecd435ef601ea27a281cc6667f94d7273b40e2;hp=06af668ebef3a149dd66c28334885c5c0e92c73f;hpb=47dbe89ba45a2c4a83d9df799cdc6292f43d6c0e;p=gosa.git diff --git a/plugins/admin/systems/class_termDNS.inc b/plugins/admin/systems/class_termDNS.inc index 06af668eb..fc55c61d7 100644 --- a/plugins/admin/systems/class_termDNS.inc +++ b/plugins/admin/systems/class_termDNS.inc @@ -8,7 +8,8 @@ class termDNS extends plugin var $cli_parameters = array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser"); /* attribute list for save action */ - var $ignore_account = TRUE; + var $ignore_account = true; + var $autonet = false; /* Basic informations */ @@ -44,6 +45,12 @@ class termDNS extends plugin if(isset($this->attrs['cn'][0])){ $this->OrigCn = $this->attrs['cn'][0]; + $this->cn = $this->attrs['cn'][0]; + } + + /* Do we have autonet support? */ + if (isset($this->config->data['MAIN']['AUTO_NETWORK_HOOK'])){ + $this->autonet= true; } /* Hide all dns specific code, if dns is not available @@ -114,7 +121,27 @@ class termDNS extends plugin $display= ""; $smarty->assign("staticAddress", ""); + $smarty->assign("autonet", ""); + /* Check for autonet button */ + if ($this->autonet && isset($_POST['autonet'])){ + $cmd= $this->config->data['MAIN']['AUTO_NETWORK_HOOK']; + if(!empty($cmd) && $this->cn != ""){ + $res = shell_exec($cmd." ".$this->cn); + if(!$res){ + print_red(sprintf(_("Can't execute specified AUTO_NETWORK_HOOK '%s'. Please check your gosa.conf."),$cmd)); + } else { + $res= split(';', trim($res)); + if (isset($res[0]) && $res[0] != ""){ + $this->ipHostNumber= $res[0]; + } + if (isset($res[1]) && $res[1] != ""){ + $this->macAddress= $res[1]; + } + } + } + } + /* There is no dns available */ if($this->DNSenabled == false){ @@ -128,6 +155,12 @@ class termDNS extends plugin $smarty->assign($attr,$this->$attr); } $smarty->assign("staticAddress","*"); + + if ($this->autonet){ + $smarty->assign("autonet", "true"); + } else { + $smarty->assign("autonet", ""); + } $display.= $smarty->fetch(get_template_path('network.tpl', TRUE)); return($display); }else{ @@ -265,12 +298,11 @@ class termDNS extends plugin $message[]= _("The required field 'IP-address' is not set."); } - /* check if given ip is valid ipi - */ - $num="(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])"; - if (!preg_match("/^$num\\.$num\\.$num\\.$num$/", $this->ipHostNumber)){ - $message[]= _("Wrong IP format in field IP-address."); - } + } + + /* check if given ip is valid ip */ + if ($this->ipHostNumber != "" && !is_ip($this->ipHostNumber)){ + $message[]= _("Wrong IP format in field IP-address."); } /* Check if mac is empty @@ -281,8 +313,7 @@ class termDNS extends plugin /* Check if given mac is valid mac */ - $tr = count(split(":",$this->macAddress)); - if($tr!=6){ + if(!is_mac($this->macAddress)){ $message[]=(_("The given macaddress is invalid. There must be 6 2byte segments seperated by ':'.")); }