index e532daba3881fabe1218a8364f34dc4bcb11e000..c74c27fd379fdbbfb0ba2364b557c533b4e46d9f 100644 (file)
<?php
-class servdns extends plugin
+require_once("class_goService.inc");
+
+class servdns extends goService
{
/* CLI vars */
var $cli_summary= "Manage server basic objects";
var $DisplayName = "";
var $StatusFlag = "";
- function servdns ($config, $dn= NULL)
+ function servdns ($config, $dn= NULL, $parent= NULL)
{
- plugin::plugin ($config, $dn);
+ plugin::plugin ($config, $dn, $parent);
- $this->DisplayName = _("Domain name system service");
+ $this->DisplayName = _("DNS service");
$this->orig_dn = $dn;
}
if ($this->is_account){
- $display= $this->show_header(_("Remove DNS service"),
+ $display= $this->show_disable_header(_("Remove DNS service"),
_("This server has DNS features enabled. You can disable them by clicking below."));
} else {
- $display= $this->show_header(_("Add DNS service"),
+ $display= $this->show_enable_header(_("Add DNS service"),
_("This server has DNS features disabled. You can enable them by clicking below."));
return ($display);
}
/* There are still entries using this configuration
* Abort deletion
- */
+ */
if(count($used)){
$i = 2;
$str ="";
foreach($used as $dn){
- if($i > 0 ){
+ if($i > 0 && !preg_match("/,relativeDomainName=/",$dn)){
$i --;
- $str.=$dn." ";
+ $name = preg_replace("/^[^=]+=([^,]*),.*$/","\\1",$dn);
+ $zone = preg_replace("/^.*zoneName=([^,]*),.*$/","\\1",$dn);
+ $str.= $name.".".$zone." ";
}
}
foreach($tmp['zoneUpdates'] as $dn => $attrs){
$ldap->cd($dn);
$ldap->modify($attrs);
- show_ldap_error("Zone:".$ldap->get_error(), _("Updating DNS service failed"));
+ show_ldap_error($ldap->get_error(), sprintf(_("Updating of system server/dns with dn '%s' failed."),$this->dn));
}
}
foreach($tmp['del'] as $dn => $del){
$ldap->cd($dn);
$ldap->rmdir_recursive($dn);
- show_ldap_error($ldap->get_error(), _("Removing DNS entries failed"));
+ show_ldap_error($ldap->get_error(), sprintf(_("Removing of system server/dns with dn '%s' failed."),$this->dn));
}
/* move follwoing entries
$ldap->cd($dn);
$ldap->add($attrs);
}
- show_ldap_error($ldap->get_error(), _("Saving DNS entries failed"));
+ show_ldap_error($ldap->get_error(), sprintf(_("Saving of system server/dns with dn '%s' failed."),$this->dn));
}
}
$attrs[$flag] = $value;
$this->$flag = $value;
$ldap->modify($attrs);
- show_ldap_error($ldap->get_error());
+ show_ldap_error($ldap->get_error(), sprintf(_("Set status flag for system server/dns with dn '%s' failed."),$this->dn));
$this->action_hook();
}
}
function getListEntry()
{
- $this->updateStatusState();
- $flag = $this->StatusFlag;
- if(empty($flag)){
- $fields['Status'] = "";
- }else{
- $fields['Status'] = $this->$flag;
- }
+ $fields = goService::getListEntry();
$fields['Message'] = _("DNS service");
- $fields['AllowStart'] = true;
- $fields['AllowStop'] = true;
- $fields['AllowRestart'] = true;
- $fields['AllowRemove']= true;
$fields['AllowEdit'] = true;
return($fields);
}
$this->$flag = $attrs[$flag][0];
}
}
+
+
+ /* Return plugin informations for acl handling */
+ function plInfo()
+ {
+ return (array(
+ "plShortName" => _("DNS service"),
+ "plDescription" => _("DNS service")." ("._("Services").")",
+ "plSelfModify" => FALSE,
+ "plDepends" => array(),
+ "plPriority" => 83,
+ "plSection" => array("administration"),
+ "plCategory" => array("server"),
+
+ "plProvidedAcls"=> array(
+ "zoneName" =>_("Zone name"),
+ "ReverseZone" =>_("Reverse zone"),
+ "sOAprimary" =>_("Primary dns server"),
+ "sOAmail" =>_("Mail address"),
+ "sOAserial" =>_("Serial"),
+ "sOArefresh" =>_("Refresh"),
+ "sOAretry" =>_("Retry"),
+ "sOAexpire" =>_("Expire"),
+ "sOAttl" =>_("TTL"),
+ "zoneRecords" =>_("Zone records"))
+ ));
+ }
+
}
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
?>