示例#1
0
function setup($argc, $argv)
{
    if ($argc == 1 || loadOptions($argv) === false) {
        printHelp();
    }
    retrieveArgs($argv);
    loadConfigFiles();
    setupAutoload();
}
示例#2
0
 /**
  * Process params from primarymodifyform() form:
  * for each record type execute addTYPERecord, execute updateSOA
  * and outputs result & config file
  *
  *@access public
  *@param array $params contains $VARS ($HTTP_GET_VARS or POST), $xferip and SOA params
  *@return string HTML result
  */
 function printModified($params)
 {
     global $db;
     global $config;
     global $html, $l;
     list($VARS, $xferip, $defaultttl, $soarefresh, $soaretry, $soaexpire, $soaminimum, $modifyptr, $modifyptripv6, $modifya) = $params;
     $this->error = "";
     $result = '';
     if (!$this->VerifyAllTTL($VARS)) {
         return sprintf($html->string_error, $this->error);
     }
     $delete = retrieveArgs("delete", $VARS);
     $ns = retrieveArgs("ns", $VARS);
     $nsttl = retrieveArgs("nsttl", $VARS);
     $subns = retrieveArgs("subns", $VARS);
     $subnsa = retrieveArgs("subnsa", $VARS);
     $subnsttl = retrieveArgs("subnsttl", $VARS);
     if ($this->reversezone) {
         $ptr = retrieveArgs("ptr", $VARS);
         $ptrname = retrieveArgs("ptrname", $VARS);
         $ptrttl = retrieveArgs("ptrttl", $VARS);
         $delegatefrom = retrieveArgs("delegatefrom", $VARS);
         $delegateto = retrieveArgs("delegateto", $VARS);
         $delegatettl = retrieveArgs("delegatettl", $VARS);
         $delegateuser = retrieveArgs("delegateuser", $VARS);
         $gen = retrieveArgs("gen", $VARS);
     } else {
         $mxsrc = retrieveArgs("mxsrc", $VARS);
         $mx = retrieveArgs("mx", $VARS);
         $mxttl = retrieveArgs("mxttl", $VARS);
         $mxpref = retrieveArgs("mxpref", $VARS);
         $aaaaname = retrieveArgs("aaaaname", $VARS);
         $aaaa = retrieveArgs("aaaa", $VARS);
         $aaaattl = retrieveArgs("aaaattl", $VARS);
         $aname = retrieveArgs("aname", $VARS);
         $a = retrieveArgs("a", $VARS);
         $attl = retrieveArgs("attl", $VARS);
         $srvname = retrieveArgs("srvname", $VARS);
         $srvpriority = retrieveArgs("srvpriority", $VARS);
         $srvweight = retrieveArgs("srvweight", $VARS);
         $srvport = retrieveArgs("srvport", $VARS);
         $srvvalue = retrieveArgs("srvvalue", $VARS);
         $srvttl = retrieveArgs("srvttl", $VARS);
         $www = retrieveArgs("www", $VARS);
         $wwwa = retrieveArgs("wwwa", $VARS);
         $wwwr = retrieveArgs("wwwr", $VARS);
         $wwwttl = retrieveArgs("wwwttl", $VARS);
     }
     $cname = retrieveArgs("cname", $VARS);
     $cnamea = retrieveArgs("cnamea", $VARS);
     $cnamettl = retrieveArgs("cnamettl", $VARS);
     $txt = retrieveArgs("txt", $VARS);
     $txtstring = retrieveArgs("txtstring", $VARS);
     $txtttl = retrieveArgs("txtttl", $VARS);
     $result .= $this->Delete($delete, $modifyptr, $modifya);
     $result .= $this->AddNSRecord($ns, $nsttl);
     if ($this->reversezone) {
         $result .= $this->AddPTRRecord($this->zoneid, $ptr, $ptrname, $ptrttl, $modifya);
         $result .= $this->AddGenerateRecord($this->zoneid, $gen, $modifya);
         $result .= $this->AddDELEGATERecord($delegatefrom, $delegateto, $delegateuser, $delegatettl);
         $result .= $this->AddSUBNSRecord($subns, $subnsa, $subnsttl);
     } else {
         $result .= $this->AddMXRecord($mxsrc, $mx, $mxpref, $mxttl);
         if ($this->user->ipv6) {
             $result .= $this->AddAAAARecord($this->zoneid, $aaaa, $aaaaname, $aaaattl, $modifyptripv6);
         }
         $result .= $this->AddARecord($this->zoneid, $a, $aname, $attl, $modifyptr);
         $result .= $this->AddSRVRecord($srvname, $srvpriority, $srvweight, $srvport, $srvvalue, $srvttl);
         $result .= $this->AddSUBNSRecord($subns, $subnsa, $subnsttl);
         $result .= $this->AddWWWRecord($www, $wwwa, $wwwr, $wwwttl);
     }
     $result .= $this->AddCNAMERecord($cname, $cnamea, $cnamettl);
     $result .= $this->AddTXTRecord($txt, $txtstring, $txtttl);
     if ($this->UpdateSOA($xferip, $defaultttl, $soarefresh, $soaretry, $soaexpire, $soaminimum) == 0) {
         $result .= sprintf($html->string_error, $this->error) . '<br>';
     } else {
         $result .= sprintf($l['str_primary_new_serial_x'], $this->serial) . "<br>";
         // check for errors
         // - generate zone file in /tmp/zonename
         if (!$this->generateConfigFile()) {
             $this->flagErroneous($this->error);
             $result .= sprintf($html->string_error, $this->error) . '<br>';
         } else {
             // - do named-checkzone $zonename /tmp/zonename and return result
             $checker = "{$config->binnamedcheckzone} " . escapeshellarg($this->zonename) . " " . $this->tempZoneFile();
             $check = shell_exec(escapeshellcmd($checker));
             // if ok
             if (preg_match("/OK/", $check)) {
                 $result .= $l['str_primary_internal_tests_ok'] . '<br>
       ' . $l['str_primary_generated_config'] . ':
       <p align="center">
       <pre>
       ';
                 // Print /tmp/zonename
                 $fd = fopen($this->tempZoneFile(), "r");
                 if ($fd == 0) {
                     $result .= sprintf($html->string_error, sprintf($l['str_can_not_open_x_for_reading'], $this->tempZoneFile()));
                 } else {
                     $result .= fread($fd, filesize($this->tempZoneFile()));
                     fclose($fd);
                 }
                 $result .= "</pre>\n          </p>&nbsp;";
                 unlink($this->tempZoneFile());
                 $result .= $this->flagModified($this->zoneid);
             } else {
                 $this->flagErroneous($check);
                 $result .= $l['str_primary_zone_error_warning'] . ':
       <br>
       <pre>' . $check . '</pre>
       ' . sprintf($l['str_primary_error_if_engine_error_x_contact_admin_x'], '<a  href="mailto:' . $config->contactemail . '">', '</a>') . '
       <br>
       ' . $l['str_primary_trouble_occured_when_checking'] . ':
       <p align="center">
       <pre>
       ';
                 // Print /tmp/zonename
                 $fd = fopen($this->tempZoneFile(), "r");
                 if ($fd == 0) {
                     $result .= sprintf($html->string_error, sprintf($l['str_can_not_open_x_for_reading'], $this->tempZoneFile()));
                 } else {
                     $result .= fread($fd, filesize($this->tempZoneFile()));
                     fclose($fd);
                 }
                 $result .= "</pre>\n          </p>&nbsp;";
             }
         }
     }
     return $result;
 }
示例#3
0
 } else {
     // !isset($action)
     // $action is set.
     // if usermodification, get grouprights & delete & act
     // if usercreation, create new user
     $content = "";
     $localerror = 0;
     $missing = "";
     switch ($action) {
         case "usermodification":
             // retrieve array of "userid"
             // retrieve array of "groupright"
             // retrieve array of "delete"
             $listofuserids = retrieveArgs("userid", $_POST);
             $listofgrouprights = retrieveArgs("groupright", $_POST);
             $listofdelete = retrieveArgs("delete", $_POST);
             while ($groupright = array_pop($listofgrouprights)) {
                 $usertochange = array_pop($listofuserids);
                 // update groupright for user $usertochange
                 if ($groupright != 'R' && $groupright != 'W') {
                     $content .= sprintf($html->string_error, $l['str_wrong_group_rights']) . "<br>";
                 } else {
                     // check if user in group
                     if ($group->isMember($usertochange)) {
                         // set group right
                         if (!$group->setGroupRights($usertochange, $groupright)) {
                             $content .= sprintf($html->string_error, sprintf($l['str_while_changing_group_rights_for_x'], $user->RetrieveLogin($usertochange)) . ': ' . $group->error) . '<br>';
                         } else {
                             $content .= sprintf($l['str_rights_for_x_successfully_set_to_x'], $user->RetrieveLogin($usertochange), $groupright) . '<br>';
                         }
                     } else {
示例#4
0
         if ($numbertodelete) {
             $content .= $numbertodelete . " " . $l['str_logs_successfully_deleted'] . '<br>';
         } else {
             $content .= $l['str_no_logs_for_deletion'] . '<br>';
         }
     }
 }
 // purge
 if (isset($_REQUEST) && isset($_REQUEST['purgebutton']) || !isset($_REQUEST) && isset($purgebutton)) {
     if (isset($_REQUEST)) {
         $purge = $_REQUEST['purge'];
     }
     $datets = time();
     switch ($purge) {
         case "all":
             $listofdelete = retrieveArgs("id", $_REQUEST);
             $numbertodelete = count($listofdelete);
             $localerror = "";
             while ($todelete = array_pop($listofdelete)) {
                 if (!$userlogs->deleteLog($todelete)) {
                     $html = $userlogs->error;
                 }
             }
             if ($localerror) {
                 $userlogs->error = $localerror;
             } else {
                 if ($numbertodelete) {
                     $content .= sprintf($l['str_x_logs_purged'], $numbertodelete) . '<br>';
                 }
             }
             break;