Changeset 931


Ignore:
Timestamp:
08/28/25 13:42:55 (9 days ago)
Author:
Kris Deugau
Message:

/branches/secondaryzones

Update DNSDB::zoneStatus() to take a hash for arguments instead of bare
values, for easier calling for secondary zone cases

Location:
branches/secondaryzones
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/secondaryzones/DNSDB.pm

    r928 r931  
    30963096  my $failmsg = '';
    30973097  my $zone = ($revrec eq 'n' ? $self->domainName($zoneid) : $self->revName($zoneid));
    3098   my $zonestatus = $self->zoneStatus($zoneid, $revrec);
     3098  my $zonestatus = $self->zoneStatus(zoneid => $zoneid, revrec => $revrec);
    30993099
    31003100  return ('FAIL', ($revrec eq 'n' ? 'Domain' : 'Reverse zone')." ID $zoneid doesn't exist") if !$zone;
     
    59365936  my $self = shift;
    59375937  my $dbh = $self->{dbh};
    5938   my $id = shift;
    5939   my $revrec = shift;
    5940   my $newstatus = shift || 'mu';
    5941 
    5942   return undef if $id !~ /^\d+$/;
     5938
     5939  my %args = @_;
     5940
     5941  return undef if $args{zoneid} !~ /^\d+$/;
     5942  return undef if (!defined($args{revrec}) && !defined($args{secondary}));
     5943  $args{newstatus} = 'mu' if !$args{newstatus};
    59435944
    59445945  # Allow transactions, and raise an exception on errors so we can catch it later.
     
    59475948  local $dbh->{RaiseError} = 1;
    59485949
    5949   if ($newstatus ne 'mu') {
     5950  if ($args{newstatus} ne 'mu') {
    59505951    # ooo, fun!  let's see what we were passed for status
    59515952    eval {
    5952       $newstatus = 0 if $newstatus eq 'domoff';
    5953       $newstatus = 1 if $newstatus eq 'domon';
    5954       $dbh->do("UPDATE ".($revrec eq 'n' ? 'domains' : 'revzones')." SET status=? WHERE ".
    5955         ($revrec eq 'n' ? 'domain_id' : 'rdns_id')."=?", undef, ($newstatus,$id) );
    5956 
     5953      $args{newstatus} = 0 if $args{newstatus} eq 'domoff';
     5954      $args{newstatus} = 1 if $args{newstatus} eq 'domon';
     5955      $dbh->do("UPDATE ".
     5956        ($args{secondary} eq 'n' ? ($args{revrec} eq 'n' ? 'domains' : 'revzones') : 'secondary_zones')." SET status=? WHERE ".
     5957        ($args{secondary} eq 'n' ? ($args{revrec} eq 'n' ? 'domain_id' : 'rdns_id') : 'secondary_id')."=?",
     5958        undef, ($args{newstatus},$args{zoneid}) );
    59575959##fixme  switch to more consise "Enabled <domain"/"Disabled <domain>" as with users?
    5958       $resultstr = "Changed ".($revrec eq 'n' ? $self->domainName($id) : $self->revName($id)).
    5959         " state to ".($newstatus ? 'active' : 'inactive');
     5960      $resultstr = "Changed ".
     5961        ($args{secondary} eq 'n' ?
     5962                ($args{revrec} eq 'n' ? $self->domainName($args{zoneid}) : $self->revName($args{zoneid})) :
     5963                $self->secondaryName($args{zoneid})
     5964        )." state to ".($args{newstatus} ? 'active' : 'inactive');
    59605965
    59615966      my %loghash;
    5962       $loghash{domain_id} = $id if $revrec eq 'n';
    5963       $loghash{rdns_id} = $id if $revrec eq 'y';
    5964       $loghash{group_id} = $self->parentID(id => $id, type => ($revrec eq 'n' ? 'domain' : 'revzone'), revrec => $revrec);
     5967      if ($args{secondary} eq 'n') {
     5968        $loghash{domain_id} = $args{zoneid} if $args{revrec} eq 'n';
     5969        $loghash{rdns_id} = $args{zoneid} if $args{revrec} eq 'y';
     5970      } else {
     5971        $loghash{secondary_id} = $args{zoneid};
     5972      }
     5973      $loghash{group_id} = $self->parentID(id => $args{zoneid}, revrec => $args{revrec},
     5974        type => ($args{secondary} eq 'n' ? ($args{revrec} eq 'n' ? 'domain' : 'revzone') : 'secondaryzone'));
    59655975      $loghash{entry} = $resultstr;
    59665976      $self->_log(%loghash);
     
    59785988
    59795989  my ($status) = $dbh->selectrow_array("SELECT status FROM ".
    5980         ($revrec eq 'n' ? "domains WHERE domain_id=?" : "revzones WHERE rdns_id=?"),
    5981         undef, ($id) );
     5990        ($args{secondary} eq 'n' ? ($args{revrec} eq 'n' ? "domains WHERE domain_id=?" : "revzones WHERE rdns_id=?") : "secondary_zones WHERE secondary_id=?"),
     5991        undef, ($args{zoneid}) );
    59825992  return $status;
    59835993} # end zoneStatus()
  • branches/secondaryzones/dns-rpc.cgi

    r906 r931  
    19571957=item reverse
    19581958
    1959 Set to C<y> if you want to get/set the status for a reverse zone
     1959Set to C<y> if you want to get/set the status for a reverse zone.  Defaults
     1960to C<n>.
     1961
     1962=item secondary
     1963
     1964Set to C<y> if you want to get/set the status of a seconary zone.  Defaults
     1965to C<n>.  C<reverse> has no meaning if C<secondary> is 'y'.
    19601966
    19611967=item status
     
    19721978
    19731979  $args{reverse} = 'n' if !$args{reverse} || $args{reverse} ne 'y';
    1974   my @arglist = ($args{zoneid}, $args{reverse});
    1975   push @arglist, $args{status} if defined($args{status});
    1976 
    1977   my $status = $dnsdb->zoneStatus(@arglist);
     1980  $args{secondary} = 'n' if !$args{secondary} || $args{secondary} ne 'y';
     1981
     1982  my $status = $dnsdb->zoneStatus(%args);
    19781983}
    19791984
  • branches/secondaryzones/dns.cgi

    r924 r931  
    412412    }
    413413    if ($flag && ($permissions{admin} || $permissions{domain_edit})) {
    414       my $stat = $dnsdb->zoneStatus($webvar{id}, 'n', $webvar{zonestatus});
     414      my $stat = $dnsdb->zoneStatus(zoneid => $webvar{id}, revrec => 'n', newstatus => $webvar{zonestatus});
    415415      $page->param(resultmsg => $DNSDB::resultstr);
    416416    } else {
     
    518518    }
    519519    if ($flag && ($permissions{admin} || $permissions{domain_edit})) {
    520       my $stat = $dnsdb->zoneStatus($webvar{id}, 'y', $webvar{zonestatus});
     520      my $stat = $dnsdb->zoneStatus(zoneid => $webvar{id}, revrec => 'y', newstatus => $webvar{zonestatus});
    521521      $page->param(resultmsg => $DNSDB::resultstr);
    522522    } else {
     
    620620    }
    621621    if ($flag && ($permissions{admin} || $permissions{domain_edit})) {
    622       my $stat = $dnsdb->secondaryzoneStatus($webvar{id}, 'n', $webvar{zonestatus});
     622      my $stat = $dnsdb->zoneStatus(zoneid => $webvar{id}, revrec => 'n', secondary => 'y', newstatus => $webvar{zonestatus});
    623623      $page->param(resultmsg => $DNSDB::resultstr);
    624624    } else {
     
    13311331        if $webvar{bulkaction} eq 'move';
    13321332    if ($webvar{bulkaction} eq 'deactivate' || $webvar{bulkaction} eq 'activate') {
    1333       my $stat = $dnsdb->zoneStatus($webvar{$input}, ($fr eq 'dom' ? 'n' : 'y'),
    1334         ($webvar{bulkaction} eq 'activate' ? 'domon' : 'domoff'));
     1333      my $stat = $dnsdb->zoneStatus(zoneid => $webvar{$input}, revrec => ($fr eq 'dom' ? 'n' : 'y'),
     1334        newstatus => ($webvar{bulkaction} eq 'activate' ? 'domon' : 'domoff'));
    13351335      $code = (defined($stat) ? 'OK' : 'FAIL');
    13361336      $msg = (defined($stat) ? $DNSDB::resultstr : $DNSDB::errstr);
Note: See TracChangeset for help on using the changeset viewer.