package ISPMan::DNSMan::NSrecords; use strict; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $Config); require Exporter; @ISA = qw(Exporter AutoLoader); @EXPORT = qw( editnsrecords addnsrecord modifynsrecords getns ); $VERSION = '0.01'; use ISPMan::Config; $Config=ISPMan::Config->new(); sub editnsrecords { my $self=shift; my $r=shift; my $dn=$r->param("dn"); my ($entry)=$self->{'ldap'}->getEntry($dn); print $r->param('domain'), "::NS Records

"; print qq| |; my @records=$entry->get_value("record"); if (@records) { print qq| |; for (@records) { my ($origion, $host)=split(/\s*,\s*/, $_); print qq| |; } print qq| |; } print qq| |; print "
Origion Name Server
Discard Changes Apply Changes

  Save new Entry
"; } sub modifynsrecords { my $self=shift; my $r=shift; my $dn=$r->param("dn"); my (@hosts, @origions); for ($r->param("host")) { push @hosts, $_ if $_; } for ($r->param("origion")) { push @origions, $_ if $_; } my @records=map{"$origions[$_], $hosts[$_]"}0..$#hosts; if (@records) { $r->param("record", \@records); $self->{'ldap'}->updateEntry($r); } $self->editnsrecords($r); } sub addnsrecord { my $self=shift; my $r=shift; if ($r->param("host")){ my $record=join ',', ($r->param("origion"), $r->param("host")); $r->param("record", $record); $self->{'ldap'}->addEntry($r); } $self->editnsrecords($r); } 1; __END__