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:
?>