Changeset 638 for trunk/dns.cgi


Ignore:
Timestamp:
06/03/14 17:18:10 (10 years ago)
Author:
Kris Deugau
Message:

/trunk

Add "Bulk Reverse Zone Operations" as an overlay on "Bulk Domain Operations"
Add "Select all" widget to bulk operations page

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dns.cgi

    r628 r638  
    10771077  fill_permissions($page, \%grpperms);
    10781078
    1079 } elsif ($webvar{page} eq 'bulkdomain') {
     1079} elsif ($webvar{page} eq 'bulkdomain' || $webvar{page} eq 'bulkrev') {
    10801080  # Bulk operations on domains.  Note all but group move are available on the domain list.
    10811081##fixme:  do we care about bulk operations on revzones?  Move-to-group, activate, deactivate,
    10821082# and delete should all be much rarer for revzones than for domains.
    10831083
    1084   changepage(page => "domlist", errmsg => "You are not permitted to make bulk domain changes")
     1084  changepage(page => "domlist", errmsg => "You are not permitted to make bulk zone changes")
    10851085        unless ($permissions{admin} || $permissions{domain_edit} || $permissions{domain_create} || $permissions{domain_delete});
    10861086
    10871087  fill_grouplist("grouplist");
    10881088
    1089   my $count = $dnsdb->getZoneCount(revrec => 'n', curgroup => $curgroup);
     1089  $page->param(fwdzone => $webvar{page} eq 'bulkdomain');
     1090
     1091  my $count = $dnsdb->getZoneCount(revrec => ($webvar{page} eq 'bulkdomain' ? 'n' : 'y'),
     1092        curgroup => $curgroup);
    10901093
    10911094  $page->param(curpage => $webvar{page});
     
    10941097  $page->param(perpage => $perpage);
    10951098
    1096   my $domlist = $dnsdb->getZoneList(revrec => 'n', curgroup => $curgroup, offset => $offset);
     1099  my $domlist = $dnsdb->getZoneList(revrec => ($webvar{page} eq 'bulkdomain' ? 'n' : 'y'),
     1100        curgroup => $curgroup, offset => $offset);
    10971101  my $rownum = 0;
    10981102  foreach my $dom (@{$domlist}) {
    10991103    delete $dom->{status};
    11001104    delete $dom->{group};
    1101     $dom->{newrow} = (++$rownum) % 5 == 0;
     1105    $dom->{newrow} = (++$rownum) % 5 == 0 && $rownum != $perpage;
    11021106  }
    11031107
     
    11401144  # order here, and since we don't have the domain names until we go around this
    11411145  # loop, we can't alpha-sort them here.  :(
    1142   foreach (keys %webvar) {
     1146  foreach my $input (keys %webvar) {
    11431147    my %row;
    1144     next unless $_ =~ /^dom_\d+$/;
     1148    next unless $input =~ /^(dom|rev)_\d+$/;
     1149    my $fr = $1;
    11451150    # second security check - does the user have permission to meddle with this domain?
    1146     if (!check_scope(id => $webvar{$_}, type => 'domain')) {
    1147       $row{domerr} = "You are not permitted to make changes to the requested domain";
    1148       $row{domain} = $webvar{$_};
     1151    if (!check_scope(id => $webvar{$input}, type => ($fr eq 'dom' ? 'domain' : 'revzone'))) {
     1152      $row{domerr} = "You are not permitted to make changes to the requested zone";
     1153      $row{domain} = $webvar{$input};
    11491154      push @bulkresults, \%row;
    11501155      next;
    11511156    }
    1152     $row{domain} = $dnsdb->domainName($webvar{$_});
     1157    $row{domain} = ($fr eq 'dom' ? $dnsdb->domainName($webvar{$input}) : $dnsdb->revName($webvar{$input}));
    11531158
    11541159    # Do the $webvar{bulkaction}
    11551160    my ($code, $msg);
    1156     ($code, $msg) = $dnsdb->changeGroup('domain', $webvar{$_}, $webvar{destgroup})
     1161    ($code, $msg) = $dnsdb->changeGroup(($fr eq 'dom' ? 'domain' : 'revzone'), $webvar{$input}, $webvar{destgroup})
    11571162        if $webvar{bulkaction} eq 'move';
    11581163    if ($webvar{bulkaction} eq 'deactivate' || $webvar{bulkaction} eq 'activate') {
    1159       my $stat = $dnsdb->zoneStatus($webvar{$_}, 'n', ($webvar{bulkaction} eq 'activate' ? 'domon' : 'domoff'));
     1164      my $stat = $dnsdb->zoneStatus($webvar{$input}, ($fr eq 'dom' ? 'n' : 'y'),
     1165        ($webvar{bulkaction} eq 'activate' ? 'domon' : 'domoff'));
    11601166      $code = (defined($stat) ? 'OK' : 'FAIL');
    11611167      $msg = (defined($stat) ? $DNSDB::resultstr : $DNSDB::errstr);
    11621168    }
    1163     ($code, $msg) = $dnsdb->delZone($webvar{$_}, 'n')
     1169    ($code, $msg) = $dnsdb->delZone($webvar{$input}, ($fr eq 'dom' ? 'n' : 'y'))
    11641170        if $webvar{bulkaction} eq 'delete';
    11651171
Note: See TracChangeset for help on using the changeset viewer.