ispman/lib/ISPMan DomainMan.pm,1.90,1.91

Joerg Delker <[email protected]> Sun, 21 Dec 2008 16:17:01 +0000
Newsgroups gmane.comp.isp.ispman.cvs
Message-ID <[email protected]>
Update of /cvsroot/ispman/ispman/lib/ISPMan
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv32584/lib/ISPMan

Modified Files:
	DomainMan.pm 
Log Message:
fixed [ 2213932 ] Allow nodns/slave domains to be changed to to other types
(Thanks to Fabio Morselli)

Index: DomainMan.pm
===================================================================
RCS file: /cvsroot/ispman/ispman/lib/ISPMan/DomainMan.pm,v
retrieving revision 1.90
retrieving revision 1.91
diff -u -d -r1.90 -r1.91
--- DomainMan.pm	19 Apr 2007 21:30:23 -0000	1.90
+++ DomainMan.pm	21 Dec 2008 16:16:59 -0000	1.91
@@ -529,13 +529,32 @@
 sub genericModifyDomain {
     my $self             = shift;
     my ($r)              = shift;
-    my $ispmanDomainType = shift;
+    my $oldDomainType=shift;
+    my $newDomainType=$r->param("ispmanDomainType");
 
     my $domain      = $r->param("ispmanDomain");
     my $domain_info = $self->getDomainInfo($domain);
     my $dn          = $self->makeDomainDN($domain);
     my $data;
 
+     my $ispmanDomainType;
+     if ($newDomainType and ($newDomainType ne $oldDomainType)) {
+        my $ou={
+  	 'primary' => ["dnszone"],
+  	 'slave'   => [],
+  	 'nodns'   => [],
+ 	 'replica' => [],
+        };
+ 
+        for $ou (@{$ou->{$newDomainType}}){
+ 	 $self->addDataFromLdif("templates/domain.$ou.ldif.template", $r);
+        }
+ 
+        $ispmanDomainType=$newDomainType;
+     } else {
+        $ispmanDomainType=$oldDomainType;
+     }
+
     $data->{'ispmanDomainType'} = $ispmanDomainType;
     if ( $ispmanDomainType ne "replica" ) {
 
@@ -653,7 +672,12 @@
                 }
 
             }
-        }
+         }
+	 unless ($ispmanDomainType eq $oldDomainType) {
+	 # reload named
+	 $self->addDomainDNSProcess($domain, "modifyDomain");
+	
+	}
         return 1;
     }
 }


------------------------------------------------------------------------------