X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=plugins%2Fadmin%2Fsystems%2Fclass_servDNSeditZoneEntries.inc;h=50812871960c60f872fcc874222198b83a7f53d2;hb=5f1f63cbff1a76de561e6e556342179ace8ca24e;hp=3a13bde7dbfac17fc1f0b18238cb336979970ad1;hpb=0ce31abeaa804324730f976265cff6c3258c3682;p=gosa.git diff --git a/plugins/admin/systems/class_servDNSeditZoneEntries.inc b/plugins/admin/systems/class_servDNSeditZoneEntries.inc index 3a13bde7d..508128719 100644 --- a/plugins/admin/systems/class_servDNSeditZoneEntries.inc +++ b/plugins/admin/systems/class_servDNSeditZoneEntries.inc @@ -2,14 +2,9 @@ class servDNSeditZoneEntries extends plugin { - /* CLI vars */ - var $cli_summary= "Manage server basic objects"; - var $cli_description= "Some longer text\nfor help"; - var $cli_parameters= array("eins" => "Eins ist toll", "zwei" => "Zwei ist noch besser"); - /* attribute list for save action */ var $ignore_account = TRUE; - var $attributes = array(); + var $attributes = array("cn"); var $objectclasses = array("whatever"); var $Devices = array(); @@ -20,6 +15,7 @@ class servDNSeditZoneEntries extends plugin var $RecordTypes = array(); // Possible record type. var $disableDialog = false; // Dialog will be disabled, if this zone is new + var $cn; function servDNSeditZoneEntries ($config,$dn, $zoneObject) { @@ -28,7 +24,7 @@ class servDNSeditZoneEntries extends plugin /* Initialise class */ $this->RecordTypes = getDnsRecordTypes(); - $this->dn = "zoneName=".$zoneObject['InitialzoneName'].",".$dn; + $this->dn = "zoneName=".getNameFromMix($zoneObject['InitialzoneName']).",".$dn; $this->zoneName = $zoneObject['InitialzoneName']; $this->reverseName = $zoneObject['InitialReverseZone']; @@ -195,8 +191,14 @@ class servDNSeditZoneEntries extends plugin $ldap->cd($this->config->current['BASE']); $names = array(); + foreach($this->Devices as $DevName => $device){ + /* skip checking empty attributes */ + if(count($this->Devices[$DevName]['RECORDS']) == 0){ + return; + } + /* Checking entry name */ if((!is_uid($DevName)) | (empty($DevName))){ @@ -206,13 +208,13 @@ class servDNSeditZoneEntries extends plugin /* Renaming check for existing devices */ if(isset($device['OrigCn']) && ($DevName != $device['OrigCn'] )){ - $ldap->cd($this->config->current['BASE']); + $ldap->cd($this->dn); $ldap->search("(relativeDomainName=".$DevName.")",array("relativeDomainName")); if($ldap->count()){ $message[] = sprintf(_("Can not rename '%s' to '%s',the destination name already exists."),$device['OrigCn'],$DevName); } }elseif(!isset($device['OrigCn'])){ - $ldap->cd($this->config->current['BASE']); + $ldap->cd($this->dn); $ldap->search("(relativeDomainName=".$DevName.")",array("relativeDomainName")); if($ldap->count()){ $message[] = sprintf(_("Can not create '%s',the destination name already exists."),$DevName); @@ -229,6 +231,8 @@ class servDNSeditZoneEntries extends plugin /* Names should be written in lowercase */ + + if(strtolower($DevName) != $DevName){ $message[] = sprintf(_("The host name '%s' should be written in lowercase."), $DevName); } @@ -275,6 +279,7 @@ class servDNSeditZoneEntries extends plugin $todo = array(); + /* Create todolist */ foreach($this->Devices as $name => $dev){