new){ $this->dhcpKeyAlgorithm= $attrs['dhcpKeyAlgorithm'][0]; $this->dhcpKeySecret= $attrs['dhcpKeySecret'][0]; } } function execute() { $smarty= get_smarty(); $smarty->assign("cn", set_post($this->cn)); $dhcpKeyAlgorithm=preg_replace('/\s.*$/', '', $this->dhcpKeyAlgorithm); $smarty->assign("dhcpKeyAlgorithm",$dhcpKeyAlgorithm); $smarty->assign("dhcpKeyAlgorithms", set_post( array( "HMAC-MD5" => _("HMAC-MD5"), "RSAMD5" => _("RSAMD5"), "RSASHA1" => _("RSASHA1"), "DSA" => _("DSA"), "DH" => _("DH")))); $smarty->assign("dhcpKeySecret", set_post($this->dhcpKeySecret)); /* Assign ACLs */ $smarty->assign("acl",$this->parent->getacl("")); /* Show main page */ $display= $smarty->fetch(get_template_path('dhcp_tsigkey.tpl', TRUE,dirname(__FILE__))); /* Add footer */ $display.= "
"; if(preg_match("/w/",$this->parent->getacl(""))){ $display.= " "; } $display.= ""; $display.= "
"; return ($display); } function remove_from_parent() { } /* Save data to object */ function save_object() { /* Save remaining attributes */ if (isset($_POST['dhcp_tsigkey_posted']) && preg_match("/w/",$this->parent->getacl(""))){ if (isset($_POST['dhcpKeyAlgorithm'])){ $this->dhcpKeyAlgorithm=get_post('dhcpKeyAlgorithm'); } if (isset($_POST['dhcpKeySecret'])){ $this->dhcpKeySecret=get_post('dhcpKeySecret'); } if (isset($_POST['cn'])){ $this->cn=get_post('cn'); } } dhcpPlugin::save_object(); } /* Check values */ function check() { $message= array(); $cache = array(); if(isset($this->parent) && isset($this->parent->dhcpObjectCache)){ $cache = $this->parent->dhcpObjectCache; } /* All required fields are set? */ if ($this->cn == ""){ $message[]= msgPool::required(_("Key name")); } if ($this->dhcpKeySecret == ""){ $message[]= msgPool::required(_("Key")); } /* cn already used? */ if ($this->orig_cn != $this->cn || $this->new){ foreach($cache as $dn => $dummy){ if (preg_match("/^cn=".$this->cn.",/", $dn) && count($dummy)){ $message[]= msgPool::duplicated(_("Key name")); break; } } } /* Check external plugins */ $net= $this->network->check(); $adv= $this->advanced->check(); $message= array_merge($message, $net, $adv); return $message; } /* Save to LDAP */ function save() { dhcpPlugin::save(); if ($this->dhcpKeyAlgorithm != ""){ $this->attrs['dhcpKeyAlgorithm']= array($this->dhcpKeyAlgorithm); } else { $this->attrs['dhcpKeyAlgorithm']= array(); } if ($this->dhcpKeySecret != ""){ $this->attrs['dhcpKeySecret']= array($this->dhcpKeySecret); } else { $this->attrs['dhcpKeySecret']= array(); } return ($this->attrs); } } // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler: ?>