function setup($argc, $argv) { if ($argc == 1 || loadOptions($argv) === false) { printHelp(); } retrieveArgs($argv); loadConfigFiles(); setupAutoload(); }
/** * 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> "; 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> "; } } } return $result; }
} 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 {
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;