Ignore:
Timestamp:
12/11/13 15:45:18 (10 years ago)
Author:
Kris Deugau
Message:

/branches/stable

Merge reverse DNS work and object conversion from /trunk, 4 of mumble

Includes changes through r492 with a few minor conflicts.

Location:
branches/stable
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/stable

  • branches/stable/dns.cgi

    r546 r547  
    4545use lib '.';    ##uselib##
    4646
    47 use DNSDB qw(:ALL);
     47use DNSDB;
    4848
    4949my @debugbits;  # temp, to be spit out near the end of processing
     
    6969# we'll catch a bad DB connect string once we get to trying that
    7070##fixme:  pass params to loadConfig, and use them there, to allow one codebase to support multiple sites
    71 if (!loadConfig()) {
    72   warn "Using default configuration;  unable to load custom settings: $DNSDB::errstr";
     71my $dnsdb = new DNSDB;
     72
     73my $header = HTML::Template->new(filename => "$templatedir/header.tmpl");
     74my $footer = HTML::Template->new(filename => "$templatedir/footer.tmpl");
     75$footer->param(version => $DNSDB::VERSION);
     76
     77if (!$dnsdb) {
     78  print "Content-type: text/html\n\n";
     79  print $header->output;
     80  my $errpage = HTML::Template->new(filename => "$templatedir/dberr.tmpl");
     81  $errpage->param(errmsg => $DNSDB::errstr);
     82  print $errpage->output;
     83  print $footer->output;
     84  exit;
    7385}
     86
     87$header->param(orgname => $dnsdb->{orgname}) if $dnsdb->{orgname} ne 'Example Corp';
    7488
    7589# persistent stuff needed on most/all pages
    7690my $sid = ($webvar{sid} ? $webvar{sid} : undef);
    77 my $session = new CGI::Session("driver:File", $sid, {Directory => $config{sessiondir}})
     91my $session = new CGI::Session("driver:File", $sid, {Directory => $dnsdb->{sessiondir}})
    7892        or die CGI::Session->errstr();
    7993#$sid = $session->id() if !$sid;
     
    8195  # init stuff.  can probably axe this down to just above if'n'when user manipulation happens
    8296  $sid = $session->id();
    83   $session->expire($config{timeout});
     97  $session->expire($dnsdb->{timeout});
    8498# need to know the "upper" group the user can deal with;  may as well
    8599# stick this in the session rather than calling out to the DB every time.
     
    149163push @filterargs, $filter if $filter;
    150164
    151 # nrgh, can't handle login here because we don't have a database handle to check the user/pass with yet
    152 
    153 my $header = HTML::Template->new(filename => "$templatedir/header.tmpl");
    154 my $footer = HTML::Template->new(filename => "$templatedir/footer.tmpl");
    155 $header->param(orgname => $config{orgname}) if $config{orgname} ne 'Example Corp';
    156 $footer->param(version => $DNSDB::VERSION);
    157 
    158165## set up "URL to self"
    159166# @#$%@%@#% XHTML - & in a URL must be escaped.  >:(
     
    179186# pagination
    180187my $perpage = 15;
    181 $perpage = $config{perpage} if $config{perpage};
     188$perpage = $dnsdb->{perpage} if $dnsdb->{perpage};
    182189my $offset = ($webvar{offset} ? $webvar{offset} : 0);
    183190
     
    186193my $sortorder = "ASC";
    187194
    188 ##fixme: quit throwing the database handle around, and put all the SQL and direct DB fiddling into DNSDB.pm
    189 # dbname, user, pass, host (optional)
    190 my ($dbh,$msg) = connectDB($config{dbname}, $config{dbuser}, $config{dbpass}, $config{dbhost});
    191 
    192 if (!$dbh) {
    193   print "Content-type: text/html\n\n";
    194   print $header->output;
    195   my $errpage = HTML::Template->new(filename => "$templatedir/dberr.tmpl");
    196   $errpage->param(errmsg => $msg);
    197   print $errpage->output;
    198   print $footer->output;
    199   exit;
    200 }
    201 
    202 # Load config pieces from the database.  Ideally all but the DB user/pass/etc should be loaded here.
    203 initGlobals($dbh);
    204 
    205195# security check - does the user have permission to view this entity?
    206196# this is a prep step used "many" places
    207197my @viewablegroups;
    208 getChildren($dbh, $logingroup, \@viewablegroups, 'all');
     198$dnsdb->getChildren($logingroup, \@viewablegroups, 'all');
    209199push @viewablegroups, $logingroup;
    210200
     
    232222    # Snag ACL/permissions here too
    233223
    234     my $userdata = login($dbh, $webvar{username}, $webvar{password});
     224    my $userdata = $dnsdb->login($webvar{username}, $webvar{password});
    235225
    236226    if ($userdata) {
     
    293283# but if they keep the session active they'll continue to have access long after being disabled.  :/
    294284# Treat it as a session expiry.
    295 if ($session->param('uid') && !userStatus($dbh, $session->param('uid')) ) {
     285if ($session->param('uid') && !$dnsdb->userStatus($session->param('uid')) ) {
    296286  $sid = '';
    297287  $session->delete;     # force expiry of the session Right Away
     
    301291
    302292# Misc Things To Do on most pages
    303 initPermissions($dbh, $session->param('uid'));
    304 initActionLog($dbh, $session->param('uid'));
     293my %permissions;
     294$dnsdb->getPermissions('user', $session->param('uid'), \%permissions);
     295$dnsdb->initActionLog($session->param('uid'));
    305296
    306297$page->param(sid => $sid) unless $webvar{page} eq 'login';      # no session ID on the login page
     
    322313    my $flag = 0;
    323314    foreach (@viewablegroups) {
    324       $flag = 1 if isParent($dbh, $_, 'group', $webvar{id}, 'domain');
     315      $flag = 1 if $dnsdb->isParent($_, 'group', $webvar{id}, 'domain');
    325316    }
    326317    if ($flag && ($permissions{admin} || $permissions{domain_edit})) {
    327       my $stat = zoneStatus($dbh,$webvar{id},'n',$webvar{zonestatus});
     318      my $stat = $dnsdb->zoneStatus($webvar{id}, 'n', $webvar{zonestatus});
    328319      $page->param(resultmsg => $DNSDB::resultstr);
    329320    } else {
     
    372363  $webvar{makeactive} = 0 if !defined($webvar{makeactive});
    373364
    374   my ($code,$msg) = addDomain($dbh,$webvar{domain},$webvar{group},($webvar{makeactive} eq 'on' ? 1 : 0));
     365  my ($code,$msg) = $dnsdb->addDomain($webvar{domain}, $webvar{group}, ($webvar{makeactive} eq 'on' ? 1 : 0));
    375366
    376367  if ($code eq 'OK') {
    377     mailNotify($dbh, "New ".($webvar{makeactive} eq 'on' ? 'Active' : 'Inactive')." Domain Created",
     368    $dnsdb->mailNotify("New ".($webvar{makeactive} eq 'on' ? 'Active' : 'Inactive')." Domain Created",
    378369        ($webvar{makeactive} eq 'on' ? 'Active' : 'Inactive').qq( domain "$webvar{domain}" added by ).
    379370        $session->param("username"));
     
    402393
    403394    $page->param(del_getconf => 1);
    404     $page->param(domain => domainName($dbh,$webvar{id}));
     395    $page->param(domain => $dnsdb->domainName($webvar{id}));
    405396
    406397  } elsif ($webvar{del} eq 'ok') {
    407     my $pargroup = parentID($dbh, (id => $webvar{id}, type => 'domain', revrec => $webvar{revrec}));
    408     my ($code,$msg) = delZone($dbh, $webvar{id}, $webvar{revrec});
     398    my $pargroup = $dnsdb->parentID(id => $webvar{id}, type => 'domain', revrec => $webvar{revrec});
     399    my ($code,$msg) = $dnsdb->delZone($webvar{id}, $webvar{revrec});
    409400    if ($code eq 'OK') {
    410401      changepage(page => "domlist", resultmsg => $msg);
     
    426417    my $flag = 0;
    427418    foreach (@viewablegroups) {
    428       $flag = 1 if isParent($dbh, $_, 'group', $webvar{id}, 'revzone');
     419      $flag = 1 if $dnsdb->isParent($_, 'group', $webvar{id}, 'revzone');
    429420    }
    430421    if ($flag && ($permissions{admin} || $permissions{domain_edit})) {
    431       my $stat = zoneStatus($dbh,$webvar{id},'y',$webvar{zonestatus});
     422      my $stat = $dnsdb->zoneStatus($webvar{id}, 'y', $webvar{zonestatus});
    432423      $page->param(resultmsg => $DNSDB::resultstr);
    433424    } else {
     
    449440
    450441  fill_grouplist("grouplist");
     442  my $loclist = $dnsdb->getLocDropdown($curgroup);
     443  $page->param(loclist => $loclist);
    451444
    452445  # prepopulate revpatt with the matching default record
    453 # getRecByName($dbh, (revrec => $webvar{revrec}, defrec => $webvar{defrec}, host => 'string'));
     446# $dnsdb->getRecByName(revrec => $webvar{revrec}, defrec => $webvar{defrec}, host => 'string');
    454447
    455448  if ($session->param('add_failed')) {
     
    472465  }
    473466
    474   my ($code,$msg) = addRDNS($dbh, $webvar{revzone}, $webvar{revpatt}, $webvar{group},
    475         ($webvar{makeactive} eq 'on' ? 1 : 0));
     467  my ($code,$msg) = $dnsdb->addRDNS($webvar{revzone}, $webvar{revpatt}, $webvar{group},
     468        ($webvar{makeactive} eq 'on' ? 1 : 0), $webvar{location});
    476469
    477470  if ($code eq 'OK') {
     
    500493
    501494    $page->param(del_getconf => 1);
    502     $page->param(revzone => revName($dbh,$webvar{id}));
     495    $page->param(revzone => $dnsdb->revName($webvar{id}));
    503496
    504497  } elsif ($webvar{del} eq 'ok') {
    505     my $pargroup = parentID($dbh, (id => $webvar{id}, type => 'revzone', revrec => $webvar{revrec}));
    506     my $zone = revName($dbh, $webvar{id});
    507     my ($code,$msg) = delZone($dbh, $webvar{id}, 'y');
     498    my $pargroup = $dnsdb->parentID(id => $webvar{id}, type => 'revzone', revrec => $webvar{revrec});
     499    my $zone = $dnsdb->revName($webvar{id});
     500    my ($code,$msg) = $dnsdb->delZone($webvar{id}, 'y');
    508501    if ($code eq 'OK') {
    509502      changepage(page => "revzones", resultmsg => $msg);
     
    551544    $page->param(curpage => $webvar{page});
    552545
    553     my $count = getRecCount($dbh, $webvar{defrec}, $webvar{revrec}, $webvar{id}, $filter);
     546    my $count = $dnsdb->getRecCount($webvar{defrec}, $webvar{revrec}, $webvar{id}, $filter);
    554547
    555548    $sortby = 'host';
     
    577570# fill the page-count and first-previous-next-last-all details
    578571    fill_pgcount($count,"records",
    579         ($webvar{defrec} eq 'y' ? "group ".groupName($dbh,$webvar{id}) :
    580                 ($webvar{revrec} eq 'y' ? revName($dbh,$webvar{id}) : domainName($dbh,$webvar{id}))
     572        ($webvar{defrec} eq 'y' ? "group ".$dnsdb->groupName($webvar{id}) :
     573                ($webvar{revrec} eq 'y' ? $dnsdb->revName($webvar{id}) : $dnsdb->domainName($webvar{id}))
    581574        ));
    582575    fill_fpnla($count);  # should put some params on this sub...
     
    633626
    634627    if ($webvar{defrec} eq 'n') {
    635       my $defloc = getZoneLocation($dbh, $webvar{revrec}, $webvar{parentid});
     628      my $defloc = $dnsdb->getZoneLocation($webvar{revrec}, $webvar{parentid});
    636629      fill_loclist($curgroup, $defloc);
    637630    }
     
    643636
    644637    # location check - if user does not have record_locchg, set $webvar{location} to default location for zone
    645     my $parloc = getZoneLocation($dbh, $webvar{revrec}, $webvar{parentid});
     638    my $parloc = $dnsdb->getZoneLocation($webvar{revrec}, $webvar{parentid});
    646639    $webvar{location} = $parloc unless ($permissions{admin} || $permissions{record_locchg});
    647640
    648     my @recargs = ($dbh,$webvar{defrec},$webvar{revrec},$webvar{parentid},
    649         \$webvar{name},\$webvar{type},\$webvar{address},$webvar{ttl},$webvar{location});
     641    my @recargs = ($webvar{defrec}, $webvar{revrec}, $webvar{parentid},
     642        \$webvar{name}, \$webvar{type}, \$webvar{address}, $webvar{ttl}, $webvar{location});
    650643    if ($webvar{type} == $reverse_typemap{MX} or $webvar{type} == $reverse_typemap{SRV}) {
    651644      push @recargs, $webvar{distance};
     
    656649    }
    657650
    658     my ($code,$msg) = addRec(@recargs);
     651    my ($code,$msg) = $dnsdb->addRec(@recargs);
    659652
    660653    if ($code eq 'OK' || $code eq 'WARN') {
     
    687680    $page->param(parentid       => $webvar{parentid});
    688681    $page->param(id             => $webvar{id});
    689     my $recdata = getRecLine($dbh, $webvar{defrec}, $webvar{revrec}, $webvar{id});
     682    my $recdata = $dnsdb->getRecLine($webvar{defrec}, $webvar{revrec}, $webvar{id});
    690683    $page->param(name           => $recdata->{host});
    691684    $page->param(address        => $recdata->{val});
     
    694687    $page->param(port           => $recdata->{port});
    695688    $page->param(ttl            => $recdata->{ttl});
    696     $page->param(typelist       => getTypelist($dbh, $webvar{revrec}, $recdata->{type}));
     689    $page->param(typelist       => $dnsdb->getTypelist($webvar{revrec}, $recdata->{type}));
    697690
    698691    if ($webvar{defrec} eq 'n') {
     
    706699
    707700    # retain old location if user doesn't have permission to fiddle locations
    708     my $oldrec = getRecLine($dbh, $webvar{defrec}, $webvar{revrec}, $webvar{id});
     701    my $oldrec = $dnsdb->getRecLine($webvar{defrec}, $webvar{revrec}, $webvar{id});
    709702    $webvar{location} = $oldrec->{location} unless ($permissions{admin} || $permissions{record_locchg});
    710703
    711     my ($code,$msg) = updateRec($dbh,$webvar{defrec},$webvar{revrec},$webvar{id},$webvar{parentid},
    712         \$webvar{name},\$webvar{type},\$webvar{address},$webvar{ttl},$webvar{location},
    713         $webvar{distance},$webvar{weight},$webvar{port});
     704    my ($code,$msg) = $dnsdb->updateRec($webvar{defrec}, $webvar{revrec}, $webvar{id}, $webvar{parentid},
     705        \$webvar{name}, \$webvar{type}, \$webvar{address}, $webvar{ttl}, $webvar{location},
     706        $webvar{distance}, $webvar{weight}, $webvar{port});
    714707
    715708    if ($code eq 'OK' || $code eq 'WARN') {
     
    732725
    733726  if ($webvar{defrec} eq 'y') {
    734     $page->param(dohere => "default records in group ".groupName($dbh,$webvar{parentid}));
     727    $page->param(dohere => "default records in group ".$dnsdb->groupName($webvar{parentid}));
    735728  } else {
    736     $page->param(dohere => domainName($dbh,$webvar{parentid})) if $webvar{revrec} eq 'n';
    737     $page->param(dohere => revName($dbh,$webvar{parentid})) if $webvar{revrec} eq 'y';
     729    $page->param(dohere => $dnsdb->domainName($webvar{parentid})) if $webvar{revrec} eq 'n';
     730    $page->param(dohere => $dnsdb->revName($webvar{parentid})) if $webvar{revrec} eq 'y';
    738731  }
    739732
     
    764757  if (!defined($webvar{del})) {
    765758    $page->param(del_getconf => 1);
    766     my $rec = getRecLine($dbh, $webvar{defrec}, $webvar{revrec}, $webvar{id});
     759    my $rec = $dnsdb->getRecLine($webvar{defrec}, $webvar{revrec}, $webvar{id});
    767760    $page->param(host => $rec->{host});
    768761    $page->param(ftype => $typemap{$rec->{type}});
    769762    $page->param(recval => $rec->{val});
    770763  } elsif ($webvar{del} eq 'ok') {
    771     my ($code,$msg) = delRec($dbh, $webvar{defrec}, $webvar{revrec}, $webvar{id});
     764    my ($code,$msg) = $dnsdb->delRec($webvar{defrec}, $webvar{revrec}, $webvar{id});
    772765    if ($code eq 'OK') {
    773766      changepage(page => "reclist", id => $webvar{parentid}, defrec => $webvar{defrec},
     
    824817        unless ($permissions{admin} || $permissions{domain_edit});
    825818
    826   my ($code, $msg) = updateSOA($dbh, $webvar{defrec}, $webvar{revrec},
     819  my ($code, $msg) = $dnsdb->updateSOA($webvar{defrec}, $webvar{revrec},
    827820        (contact => $webvar{contact}, prins => $webvar{prins}, refresh => $webvar{refresh},
    828821        retry => $webvar{retry}, expire => $webvar{expire}, minttl => $webvar{minttl},
     
    878871      }
    879872    }
    880     # not gonna provide the 4th param: template-or-clone flag, just yet
    881     my ($code,$msg) = addGroup($dbh, $webvar{newgroup}, $webvar{pargroup}, \%newperms);
     873    # force inheritance of parent group's default records with inherit flag,
     874    # otherwise we end up with the hardcoded defaults from DNSDB.pm.  See
     875    # https://secure.deepnet.cx/trac/dnsadmin/ticket/8 for the UI enhancement
     876    # that will make this variable.
     877    my ($code,$msg) = $dnsdb->addGroup($webvar{newgroup}, $webvar{pargroup}, \%newperms, 1);
    882878    if ($code eq 'OK') {
    883879      if ($alterperms) {
     
    898894    # fill default permissions with immediate parent's current ones
    899895    my %parperms;
    900     getPermissions($dbh, 'group', $curgroup, \%parperms);
     896    $dnsdb->getPermissions('group', $curgroup, \%parperms);
    901897    fill_permissions($page, \%parperms);
    902898  }
     
    922918
    923919  } elsif ($webvar{del} eq 'ok') {
    924     my ($code,$msg) = delGroup($dbh, $webvar{id});
     920    my ($code,$msg) = $dnsdb->delGroup($webvar{id});
    925921    if ($code eq 'OK') {
    926922##fixme: need to clean up log when deleting a major container
     
    934930    changepage(page => "grpman");
    935931  }
    936   $page->param(delgroupname => groupName($dbh, $webvar{id}));
     932  $page->param(delgroupname => $dnsdb->groupName($webvar{id}));
    937933
    938934} elsif ($webvar{page} eq 'edgroup') {
     
    949945    # extra safety check;  make sure user can't construct a URL to bypass ACLs
    950946    my %curperms;
    951     getPermissions($dbh, 'group', $webvar{gid}, \%curperms);
     947    $dnsdb->getPermissions('group', $webvar{gid}, \%curperms);
    952948    my %chperms;
    953949    my $alterperms = 0;
     
    968964      }
    969965    }
    970     my ($code,$msg) = changePermissions($dbh, 'group', $webvar{gid}, \%chperms);
     966    my ($code,$msg) = $dnsdb->changePermissions('group', $webvar{gid}, \%chperms);
    971967    if ($code eq 'OK') {
    972968      if ($alterperms) {
    973969        changepage(page => "grpman", warnmsg =>
    974970                "You can only grant permissions you hold.  Default permissions in group ".
    975                 groupName($dbh, $webvar{gid})." updated with reduced access");
     971                $dnsdb->groupName($webvar{gid})." updated with reduced access");
    976972      } else {
    977973        changepage(page => "grpman", resultmsg => $msg);
     
    983979  }
    984980  $page->param(gid => $webvar{gid});
    985   $page->param(grpmeddle => groupName($dbh, $webvar{gid}));
     981  $page->param(grpmeddle => $dnsdb->groupName($webvar{gid}));
    986982  my %grpperms;
    987   getPermissions($dbh, 'group', $webvar{gid}, \%grpperms);
     983  $dnsdb->getPermissions('group', $webvar{gid}, \%grpperms);
    988984  fill_permissions($page, \%grpperms);
    989985
     
    998994  fill_grouplist("grouplist");
    999995
    1000   my $count = getZoneCount($dbh, (revrec => 'n', curgroup => $curgroup) );
     996  my $count = $dnsdb->getZoneCount(revrec => 'n', curgroup => $curgroup);
    1001997
    1002998  $page->param(curpage => $webvar{page});
    1003   fill_pgcount($count,'domains',groupName($dbh,$curgroup));
     999  fill_pgcount($count, 'domains', $dnsdb->groupName($curgroup));
    10041000  fill_fpnla($count);
    10051001  $page->param(perpage => $perpage);
    10061002
    1007   my $domlist = getZoneList($dbh, (revrec => 'n', curgroup => $curgroup) );
     1003  my $domlist = $dnsdb->getZoneList(revrec => 'n', curgroup => $curgroup);
    10081004  my $rownum = 0;
    10091005  foreach my $dom (@{$domlist}) {
     
    10311027    changepage(page => "domlist", errmsg => "You are not permitted to bulk-move domains")
    10321028        unless ($permissions{admin} || ($permissions{domain_edit} && $permissions{domain_create} && $permissions{domain_delete}));
    1033     my $newgname = groupName($dbh,$webvar{destgroup});
     1029    my $newgname = $dnsdb->groupName($webvar{destgroup});
    10341030    $page->param(action => "Move to group $newgname");
    10351031  } elsif ($webvar{bulkaction} eq 'deactivate' || $webvar{bulkaction} eq 'activate') {
     
    10611057      next;
    10621058    }
    1063     $row{domain} = domainName($dbh,$webvar{$_});
     1059    $row{domain} = $dnsdb->domainName($webvar{$_});
    10641060
    10651061    # Do the $webvar{bulkaction}
    10661062    my ($code, $msg);
    1067     ($code, $msg) = changeGroup($dbh, 'domain', $webvar{$_}, $webvar{destgroup})
     1063    ($code, $msg) = $dnsdb->changeGroup('domain', $webvar{$_}, $webvar{destgroup})
    10681064        if $webvar{bulkaction} eq 'move';
    10691065    if ($webvar{bulkaction} eq 'deactivate' || $webvar{bulkaction} eq 'activate') {
    1070       my $stat = zoneStatus($dbh,$webvar{$_},'n',($webvar{bulkaction} eq 'activate' ? 'domon' : 'domoff'));
     1066      my $stat = $dnsdb->zoneStatus($webvar{$_}, 'n', ($webvar{bulkaction} eq 'activate' ? 'domon' : 'domoff'));
    10711067      $code = (defined($stat) ? 'OK' : 'FAIL');
    10721068      $msg = (defined($stat) ? $DNSDB::resultstr : $DNSDB::errstr);
    10731069    }
    1074     ($code, $msg) = delZone($dbh, $webvar{$_}, 'n')
     1070    ($code, $msg) = $dnsdb->delZone($webvar{$_}, 'n')
    10751071        if $webvar{bulkaction} eq 'delete';
    10761072
     
    10971093    my $flag = 0;
    10981094    foreach (@viewablegroups) {
    1099       $flag = 1 if isParent($dbh, $_, 'group', $webvar{id}, 'user');
     1095      $flag = 1 if $dnsdb->isParent($_, 'group', $webvar{id}, 'user');
    11001096    }
    11011097    if ($flag && ($permissions{admin} || $permissions{user_edit} ||
    11021098        ($permissions{self_edit} && $webvar{id} == $session->param('uid')) )) {
    1103       my $stat = userStatus($dbh,$webvar{id},$webvar{userstatus});
     1099      my $stat = $dnsdb->userStatus($webvar{id}, $webvar{userstatus});
    11041100      $page->param(resultmsg => $DNSDB::resultstr);
    11051101    } else {
     
    11291125  fill_clonemelist();
    11301126  my %grpperms;
    1131   getPermissions($dbh, 'group', $curgroup, \%grpperms);
     1127  $dnsdb->getPermissions('group', $curgroup, \%grpperms);
    11321128
    11331129  my $grppermlist = new HTML::Template(filename => "$templatedir/permlist.tmpl");
     
    11511147
    11521148    my %newperms;       # we're going to prefill the existing permissions, so we can change them.
    1153     getPermissions($dbh, 'user', $webvar{uid}, \%newperms);
     1149    $dnsdb->getPermissions('user', $webvar{uid}, \%newperms);
    11541150
    11551151    if ($webvar{pass1} ne $webvar{pass2}) {
     
    11661162      if (!$permissions{admin}) {
    11671163        my %grpperms;
    1168         getPermissions($dbh, 'group', $curgroup, \%grpperms);
     1164        $dnsdb->getPermissions('group', $curgroup, \%grpperms);
    11691165        my $ret = comparePermissions(\%permissions, \%grpperms);
    11701166        if ($ret eq '<' || $ret eq '!') {
     
    11881184      } elsif ($permissions{admin} && $webvar{perms_type} eq 'clone') {
    11891185        $permstring = "c:$webvar{clonesrc}";
    1190         getPermissions($dbh, 'user', $webvar{clonesrc}, \%newperms);
     1186        $dnsdb->getPermissions('user', $webvar{clonesrc}, \%newperms);
    11911187        $page->param(perm_clone => 1);
    11921188      } else {
     
    12041200                unless $permissions{admin} || $permissions{user_create};
    12051201        # no scope check;  user is created in the current group
    1206         ($code,$msg) = addUser($dbh, $webvar{uname}, $curgroup, $webvar{pass1},
     1202        ($code,$msg) = $dnsdb->addUser($webvar{uname}, $curgroup, $webvar{pass1},
    12071203                ($webvar{makeactive} eq 'on' ? 1 : 0), $webvar{accttype}, $permstring,
    12081204                $webvar{fname}, $webvar{lname}, $webvar{phone});
     
    12191215# or self-torture trying to not commit the transaction until we're really done.
    12201216        # Allowing for changing group, but not coding web support just yet.
    1221         ($code,$msg) = updateUser($dbh, $webvar{uid}, $webvar{uname}, $webvar{gid}, $webvar{pass1},
     1217        ($code,$msg) = $dnsdb->updateUser($webvar{uid}, $webvar{uname}, $webvar{gid}, $webvar{pass1},
    12221218                ($webvar{makeactive} eq 'on' ? 1 : 0), $webvar{accttype},
    12231219                $webvar{fname}, $webvar{lname}, $webvar{phone});
    12241220        if ($code eq 'OK') {
    12251221          $newperms{admin} = 1 if $webvar{accttype} eq 'S';
    1226           ($code2,$msg2) = changePermissions($dbh, 'user', $webvar{uid}, \%newperms, ($permstring eq 'i'));
     1222          ($code2,$msg2) = $dnsdb->changePermissions('user', $webvar{uid}, \%newperms, ($permstring eq 'i'));
    12271223        }
    12281224      }
     
    12801276    fill_clonemelist();
    12811277
    1282     my $userinfo = getUserData($dbh,$webvar{user});
     1278    my $userinfo = $dnsdb->getUserData($webvar{user});
    12831279    fill_actypelist($userinfo->{type});
    12841280    # not using this yet, but adding it now means we can *much* more easily do so later.
     
    12861282
    12871283    my %curperms;
    1288     getPermissions($dbh, 'user', $webvar{user}, \%curperms);
     1284    $dnsdb->getPermissions('user', $webvar{user}, \%curperms);
    12891285    fill_permissions($page, \%curperms);
    12901286
     
    13221318  if (!defined($webvar{del})) {
    13231319    $page->param(del_getconf => 1);
    1324     $page->param(user => userFullName($dbh,$webvar{id}));
     1320    $page->param(user => $dnsdb->userFullName($webvar{id}));
    13251321  } elsif ($webvar{del} eq 'ok') {
    1326     my ($code,$msg) = delUser($dbh, $webvar{id});
     1322    my ($code,$msg) = $dnsdb->delUser($webvar{id});
    13271323    if ($code eq 'OK') {
    13281324      # success.  go back to the user list, do not pass "GO"
     
    13681364        unless ($permissions{admin} || $permissions{location_create});
    13691365
    1370     my ($code,$msg) = addLoc($dbh, $curgroup, $webvar{locname}, $webvar{comments}, $webvar{iplist});
     1366    my ($code,$msg) = $dnsdb->addLoc($curgroup, $webvar{locname}, $webvar{comments}, $webvar{iplist});
    13711367
    13721368    if ($code eq 'OK' || $code eq 'WARN') {
     
    13921388        unless ($permissions{admin} || $permissions{location_edit});
    13931389
    1394     my $loc = getLoc($dbh, $webvar{loc});
     1390    my $loc = $dnsdb->getLoc($webvar{loc});
    13951391    $page->param(wastrying      => "editing");
    13961392    $page->param(todo           => "Edit location/view");
     
    14051401        unless ($permissions{admin} || $permissions{location_edit});
    14061402
    1407     my ($code,$msg) = updateLoc($dbh, $webvar{id}, $curgroup, $webvar{locname}, $webvar{comments}, $webvar{iplist});
     1403    my ($code,$msg) = $dnsdb->updateLoc($webvar{id}, $curgroup, $webvar{locname}, $webvar{comments}, $webvar{iplist});
    14081404
    14091405    if ($code eq 'OK') {
     
    14431439
    14441440  $page->param(locid => $webvar{locid});
    1445   my $locdata = getLoc($dbh, $webvar{locid});
     1441  my $locdata = $dnsdb->getLoc($webvar{locid});
    14461442  $locdata->{description} = $webvar{locid} if !$locdata->{description};
    14471443  # first pass = confirm y/n (sorta)
     
    14501446    $page->param(location => $locdata->{description});
    14511447  } elsif ($webvar{del} eq 'ok') {
    1452     my ($code,$msg) = delLoc($dbh, $webvar{locid});
     1448    my ($code,$msg) = $dnsdb->delLoc($webvar{locid});
    14531449    if ($code eq 'OK') {
    14541450      # success.  go back to the user list, do not pass "GO"
     
    14651461
    14661462  $page->param(qfor => $webvar{qfor}) if $webvar{qfor};
    1467   $page->param(typelist => getTypelist($dbh, 'l', ($webvar{type} ? $webvar{type} : undef)));
     1463  $page->param(typelist => $dnsdb->getTypelist('l', ($webvar{type} ? $webvar{type} : undef)));
    14681464  $page->param(nrecurse => $webvar{nrecurse}) if $webvar{nrecurse};
    14691465  $page->param(resolver => $webvar{resolver}) if $webvar{resolver};
     
    15671563    foreach my $domain (@domlist) {
    15681564      my %row;
    1569       my ($code,$msg) = importAXFR($dbh, $webvar{ifrom}, $domain, $webvar{group},
    1570         $webvar{domstatus}, $webvar{rwsoa}, $webvar{rwns}, ($webvar{forcettl} ? $webvar{newttl} : 0),
    1571         $webvar{mergematching});
     1565      my ($code,$msg) = $dnsdb->importAXFR($webvar{ifrom}, $domain, $webvar{group},
     1566        status => $webvar{domactive}, rwsoa => $webvar{rwsoa}, rwns => $webvar{rwns},
     1567        newttl => ($webvar{forcettl} ? $webvar{newttl} : 0),
     1568        merge => $webvar{mergematching});
    15721569      $row{domok} = $msg if $code eq 'OK';
    15731570      if ($code eq 'WARN') {
     
    16321629      goto DONELOG;
    16331630    }
    1634     $page->param(logfor => 'user '.userFullName($dbh,$id));
     1631    $page->param(logfor => 'user '.$dnsdb->userFullName($id));
    16351632  } elsif ($webvar{ltype} && $webvar{ltype} eq 'dom') {
    16361633    $id = $webvar{id};
     
    16391636      goto DONELOG;
    16401637    }
    1641     $page->param(logfor => 'domain '.domainName($dbh,$id));
     1638    $page->param(logfor => 'domain '.$dnsdb->domainName($id));
    16421639  } elsif ($webvar{ltype} && $webvar{ltype} eq 'rdns') {
    16431640    $id = $webvar{id};
     
    16461643      goto DONELOG;
    16471644    }
    1648     $page->param(logfor => 'reverse zone '.revName($dbh,$id));
     1645    $page->param(logfor => 'reverse zone '.$dnsdb->revName($id));
    16491646  } else {
    16501647    # Default to listing curgroup log
    1651     $page->param(logfor => 'group '.groupName($dbh,$id));
     1648    $page->param(logfor => 'group '.$dnsdb->groupName($id));
    16521649    # note that scope limitations are applied via the change-group check;
    16531650    # group log is always for the "current" group
    16541651  }
    16551652  $webvar{ltype} = 'group' if !$webvar{ltype};
    1656   my $lcount = getLogCount($dbh, (id => $id, logtype => $webvar{ltype})) or push @debugbits, $DNSDB::errstr;
     1653  my $lcount = $dnsdb->getLogCount(id => $id, logtype => $webvar{ltype}) or push @debugbits, $dnsdb->errstr;
    16571654
    16581655  $page->param(id => $id);
     
    16741671  # Set up the column headings with the sort info
    16751672  my @cols = ('fname','username','entry','stamp');
    1676   my %colnames = (fname => 'Name', username => 'Username/Email', entry => 'Log Entry', stamp => 'Date/Time');
     1673  my %colnames = (fname => 'Name', username => 'Username', entry => 'Log Entry', stamp => 'Date/Time');
    16771674  fill_colheads($sortby, $sortorder, \@cols, \%colnames);
    16781675
    16791676##fixme:  increase per-page limit or use separate limit for log?  some ops give *lots* of entries...
    1680   my $logentries = getLogEntries($dbh, (id => $id, logtype => $webvar{ltype},
    1681         offset => $webvar{offset}, sortby => $sortby, sortorder => $sortorder));
     1677  my $logentries = $dnsdb->getLogEntries(id => $id, logtype => $webvar{ltype},
     1678        offset => $webvar{offset}, sortby => $sortby, sortorder => $sortorder);
    16821679  $page->param(logentries => $logentries);
    16831680
     
    17041701
    17051702  $page->param(group => $curgroup);
    1706   $page->param(groupname => groupName($dbh,$curgroup));
    1707   $page->param(logingrp => groupName($dbh,$logingroup));
     1703  $page->param(groupname => $dnsdb->groupName($curgroup));
     1704  $page->param(logingrp => $dnsdb->groupName($logingroup));
    17081705  $page->param(logingrp_num => $logingroup);
    17091706
     
    17711768
    17721769  my $grptree = HTML::Template->new(filename => 'templates/grptree.tmpl');
    1773   getChildren($dbh,$root,\@childlist,'immediate');
     1770  $dnsdb->getChildren($root, \@childlist, 'immediate');
    17741771  return if $#childlist == -1;
    17751772  my @grouplist;
    17761773  foreach (@childlist) {
    17771774    my %row;
    1778     $row{grpname} = groupName($dbh,$_);
     1775    $row{grpname} = $dnsdb->groupName($_);
    17791776    $row{grpnum} = $_;
    17801777    $row{whereami} = $uri_self;
    17811778    $row{curgrp} = ($_ == $cur);
    1782     $row{expanded} = isParent($dbh, $_, 'group', $cur, 'group');
     1779    $row{expanded} = $dnsdb->isParent($_, 'group', $cur, 'group');
    17831780    $row{expanded} = 1 if $_ == $cur;
    17841781    $row{subs} = fill_grptree($_,$cur,$indent.'    ');
     
    18101807  my $newurl = "http://$ENV{HTTP_HOST}$ENV{SCRIPT_NAME}?sid=$sid";
    18111808  foreach (sort keys %params) {
     1809## fixme:  something is undefined here on add location
    18121810    $newurl .= "&$_=".$q->url_encode($params{$_});
    18131811  }
     
    18511849#  $page->param(group   => $DNSDB::group);
    18521850  $page->param(isgrp => 1) if $defrec eq 'y';
    1853   $page->param(parent => ($defrec eq 'y' ? groupName($dbh, $id) :
    1854         ($revrec eq 'n' ? domainName($dbh, $id) : revName($dbh, $id)) ) );
     1851  $page->param(parent => ($defrec eq 'y' ? $dnsdb->groupName($id) :
     1852        ($revrec eq 'n' ? $dnsdb->domainName($id) : $dnsdb->revName($id)) ) );
    18551853
    18561854# defaults
     
    18671865  if ($preserve eq 'd') {
    18681866    # there are probably better ways to do this.  TMTOWTDI.
    1869     my $soa = getSOA($dbh,$defrec,$revrec,$id);
     1867    my $soa = $dnsdb->getSOA($defrec, $revrec, $id);
    18701868
    18711869    $page->param(prins  => ($soa->{prins} ? $soa->{prins} : $DNSDB::def{prins}));
     
    18931891
    18941892  # get the SOA first
    1895   my $soa = getSOA($dbh,$def,$rev,$id);
     1893  my $soa = $dnsdb->getSOA($def, $rev, $id);
    18961894
    18971895  $page->param(contact  => $soa->{contact});
     
    19031901  $page->param(ttl      => $soa->{ttl});
    19041902
    1905   my $foo2 = getDomRecs($dbh,(defrec => $def, revrec => $rev, id => $id, offset => $webvar{offset},
    1906         sortby => $sortby, sortorder => $sortorder, filter => $filter));
     1903  my $foo2 = $dnsdb->getDomRecs(defrec => $def, revrec => $rev, id => $id, offset => $webvar{offset},
     1904        sortby => $sortby, sortorder => $sortorder, filter => $filter);
    19071905
    19081906  foreach my $rec (@$foo2) {
     
    19221920
    19231921sub fill_recdata {
    1924   $page->param(typelist => getTypelist($dbh, $webvar{revrec}, $webvar{type}));
     1922  $page->param(typelist => $dnsdb->getTypelist($webvar{revrec}, $webvar{type}));
    19251923
    19261924# le sigh.  we may get called with many empty %webvar keys
     
    19301928# prefill <domain> or DOMAIN in "Host" space for new records
    19311929  if ($webvar{revrec} eq 'n') {
    1932     my $domroot = ($webvar{defrec} eq 'y' ? 'DOMAIN' : domainName($dbh,$webvar{parentid}));
     1930    my $domroot = ($webvar{defrec} eq 'y' ? 'DOMAIN' : $dnsdb->domainName($webvar{parentid}));
    19331931    $page->param(name   => ($webvar{name} ? $webvar{name} : $domroot));
    19341932    $page->param(address        => $webvar{address});
     
    19381936    $page->param(port   => $webvar{port}) if $webvar{type} == $reverse_typemap{SRV};
    19391937  } else {
    1940     my $domroot = ($webvar{defrec} eq 'y' ? 'ADMINDOMAIN' : ".$config{domain}");
     1938    my $domroot = ($webvar{defrec} eq 'y' ? 'ADMINDOMAIN' : ".$dnsdb->{domain}");
    19411939    $page->param(name   => ($webvar{name} ? $webvar{name} : $domroot));
    1942     my $zname = ($webvar{defrec} eq 'y' ? 'ZONE' : revName($dbh,$webvar{parentid}));
     1940    my $zname = ($webvar{defrec} eq 'y' ? 'ZONE' : $dnsdb->revName($webvar{parentid}));
    19431941    $zname =~ s|\d*/\d+$||;
    19441942    $page->param(address        => ($webvar{address} ? $webvar{address} : $zname));
    19451943  }
    19461944# retrieve the right ttl instead of falling (way) back to the hardcoded system default
    1947   my $soa = getSOA($dbh,$webvar{defrec},$webvar{revrec},$webvar{parentid});
     1945  my $soa = $dnsdb->getSOA($webvar{defrec}, $webvar{revrec}, $webvar{parentid});
    19481946  $page->param(ttl      => ($webvar{ttl} ? $webvar{ttl} : $soa->{minttl}));
    19491947}
     
    19691967  local $webvar{clonesrc} = 0 if !defined($webvar{clonesrc});
    19701968
    1971   my $clones = getUserDropdown($dbh, $curgroup, $webvar{clonesrc});
     1969  my $clones = $dnsdb->getUserDropdown($curgroup, $webvar{clonesrc});
    19721970  $page->param(clonesrc => $clones);
    19731971}
     
    20362034
    20372035  my @childgroups;
    2038   getChildren($dbh, $curgroup, \@childgroups, 'all') if $searchsubs;
     2036  $dnsdb->getChildren($curgroup, \@childgroups, 'all') if $searchsubs;
    20392037  my $childlist = join(',',@childgroups);
    20402038
    2041   my $count = getZoneCount($dbh, (childlist => $childlist, curgroup => $curgroup, revrec => $webvar{revrec},
    2042         filter => ($filter ? $filter : undef), startwith => ($startwith ? $startwith : undef) ) );
     2039  my $count = $dnsdb->getZoneCount(childlist => $childlist, curgroup => $curgroup, revrec => $webvar{revrec},
     2040        filter => ($filter ? $filter : undef), startwith => ($startwith ? $startwith : undef) );
    20432041
    20442042# fill page count and first-previous-next-last-all bits
    2045   fill_pgcount($count,($webvar{revrec} eq 'n' ? 'domains' : 'revzones'),groupName($dbh,$curgroup));
     2043  fill_pgcount($count,($webvar{revrec} eq 'n' ? 'domains' : 'revzones'),$dnsdb->groupName($curgroup));
    20462044  fill_fpnla($count);
    20472045
     
    20712069  $page->param(group => $curgroup);
    20722070
    2073   my $zonelist = getZoneList($dbh, (childlist => $childlist, curgroup => $curgroup,
    2074         revrec => $webvar{revrec},
     2071  my $zonelist = $dnsdb->getZoneList(childlist => $childlist, curgroup => $curgroup, revrec => $webvar{revrec},
    20752072        filter => ($filter ? $filter : undef), startwith => ($startwith ? $startwith : undef),
    20762073        offset => $webvar{offset}, sortby => $sortby, sortorder => $sortorder
    2077         ) );
     2074        );
    20782075# probably don't need this, keeping for reference for now
    20792076#  foreach (@$zonelist) {
     
    20942091
    20952092  my @childgroups;
    2096   getChildren($dbh, $curgroup, \@childgroups, 'all') if $searchsubs;
     2093  $dnsdb->getChildren($curgroup, \@childgroups, 'all') if $searchsubs;
    20972094  my $childlist = join(',',@childgroups);
    20982095
    2099   my ($count) = getGroupCount($dbh, (childlist => $childlist, curgroup => $curgroup,
    2100         filter => ($filter ? $filter : undef), startwith => ($startwith ? $startwith : undef) ) );
     2096  my ($count) = $dnsdb->getGroupCount(childlist => $childlist, curgroup => $curgroup,
     2097        filter => ($filter ? $filter : undef), startwith => ($startwith ? $startwith : undef) );
    21012098
    21022099# fill page count and first-previous-next-last-all bits
     
    21292126  $sortby = 'g2.group_name' if $sortby eq 'parent';
    21302127
    2131   my $glist = getGroupList($dbh, (childlist => $childlist, curgroup => $curgroup,
     2128  my $glist = $dnsdb->getGroupList(childlist => $childlist, curgroup => $curgroup,
    21322129        filter => ($filter ? $filter : undef), startwith => ($startwith ? $startwith : undef),
    2133         offset => $webvar{offset}, sortby => $sortby, sortorder => $sortorder) );
     2130        offset => $webvar{offset}, sortby => $sortby, sortorder => $sortorder);
    21342131
    21352132  $page->param(grouptable => $glist);
     
    21492146
    21502147    my @childlist;
    2151     getChildren($dbh,$root,\@childlist,'immediate');
     2148    $dnsdb->getChildren($root, \@childlist, 'immediate');
    21522149    return if $#childlist == -1;
    21532150    foreach (@childlist) {
     
    21552152      $row{groupval} = $_;
    21562153      $row{groupactive} = ($_ == $cur);
    2157       $row{groupname} = $indent.groupName($dbh, $_);
     2154      $row{groupname} = $indent.$dnsdb->groupName($_);
    21582155      push @{$grplist}, \%row;
    21592156      getgroupdrop($_, $cur, $grplist, $indent.'&nbsp;&nbsp;&nbsp;&nbsp;');
     
    21632160  my @grouplist;
    21642161  push @grouplist, { groupval => $logingroup, groupactive => $logingroup == $curgroup,
    2165         groupname => groupName($dbh, $logingroup) };
     2162        groupname => $dnsdb->groupName($logingroup) };
    21662163  getgroupdrop($logingroup, $curgroup, \@grouplist);
    21672164
     
    21792176
    21802177  if ($permissions{admin} || $permissions{record_locchg}) {
    2181     my $loclist = getLocDropdown($dbh, $cur, $defloc);
     2178    my $loclist = $dnsdb->getLocDropdown($cur, $defloc);
    21822179    $page->param(record_locchg => 1);
    21832180    $page->param(loclist => $loclist);
    21842181  } else {
    2185     my $loc = getLoc($dbh, $defloc);
     2182    my $loc = $dnsdb->getLoc($defloc);
    21862183    $page->param(loc_name => $loc->{description});
    21872184  }
     
    21922189
    21932190  my @childgroups;
    2194   getChildren($dbh, $curgroup, \@childgroups, 'all') if $searchsubs;
     2191  $dnsdb->getChildren($curgroup, \@childgroups, 'all') if $searchsubs;
    21952192  my $childlist = join(',',@childgroups);
    21962193
    2197   my $count = getUserCount($dbh, (childlist => $childlist, curgroup => $curgroup,
    2198         filter => ($filter ? $filter : undef), startwith => ($startwith ? $startwith : undef) ) );
     2194  my $count = $dnsdb->getUserCount(childlist => $childlist, curgroup => $curgroup,
     2195        filter => ($filter ? $filter : undef), startwith => ($startwith ? $startwith : undef) );
    21992196
    22002197# fill page count and first-previous-next-last-all bits
     
    22212218  $page->param(searchsubs => $searchsubs) if $searchsubs;
    22222219
    2223   my $ulist = getUserList($dbh, (childlist => $childlist, curgroup => $curgroup,
     2220  my $ulist = $dnsdb->getUserList(childlist => $childlist, curgroup => $curgroup,
    22242221        filter => ($filter ? $filter : undef), startwith => ($startwith ? $startwith : undef),
    2225         offset => $webvar{offset}, sortby => $sortby, sortorder => $sortorder) );
     2222        offset => $webvar{offset}, sortby => $sortby, sortorder => $sortorder);
    22262223  # Some UI things need to be done to the list (unlike other lists)
    22272224  foreach my $u (@{$ulist}) {
     
    22392236
    22402237  my @childgroups;
    2241   getChildren($dbh, $curgroup, \@childgroups, 'all') if $searchsubs;
     2238  $dnsdb->getChildren($curgroup, \@childgroups, 'all') if $searchsubs;
    22422239  my $childlist = join(',',@childgroups);
    22432240
    2244   my $count = getLocCount($dbh, (childlist => $childlist, curgroup => $curgroup,
    2245         filter => ($filter ? $filter : undef), startwith => ($startwith ? $startwith : undef) ) );
     2241  my $count = $dnsdb->getLocCount(childlist => $childlist, curgroup => $curgroup,
     2242        filter => ($filter ? $filter : undef), startwith => ($startwith ? $startwith : undef) );
    22462243
    22472244# fill page count and first-previous-next-last-all bits
     
    22682265  $page->param(searchsubs => $searchsubs) if $searchsubs;
    22692266
    2270   my $loclist = getLocList($dbh, (childlist => $childlist, curgroup => $curgroup,
     2267  my $loclist = $dnsdb->getLocList(childlist => $childlist, curgroup => $curgroup,
    22712268        filter => ($filter ? $filter : undef), startwith => ($startwith ? $startwith : undef),
    2272         offset => $webvar{offset}, sortby => $sortby, sortorder => $sortorder) );
     2269        offset => $webvar{offset}, sortby => $sortby, sortorder => $sortorder);
    22732270  # Some UI things need to be done to the list
    22742271  foreach my $l (@{$loclist}) {
     
    23412338  } else {
    23422339    foreach (@viewablegroups) {
    2343       return 1 if isParent($dbh, $_, 'group', $entity, $entype);
     2340      return 1 if $dnsdb->isParent($_, 'group', $entity, $entype);
    23442341    }
    23452342  }
Note: See TracChangeset for help on using the changeset viewer.