add possibility to specify AXFR servers for bind zone-configuration, fixes #100
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
This commit is contained in:
@@ -68,6 +68,16 @@ return array(
|
||||
'default' => '',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_axfrservers' => array(
|
||||
'label' => $lng['serversettings']['axfrservers'],
|
||||
'settinggroup' => 'system',
|
||||
'varname' => 'axfrservers',
|
||||
'type' => 'string',
|
||||
'string_regexp' => '/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})(, ?(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3}))*$/i',
|
||||
'string_emptyallowed' => true,
|
||||
'default' => '',
|
||||
'save_method' => 'storeSettingField',
|
||||
),
|
||||
'system_dns_createmailentry' => array(
|
||||
'label' => $lng['serversettings']['mail_also_with_mxservers'],
|
||||
'settinggroup' => 'system',
|
||||
|
||||
@@ -511,6 +511,7 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES
|
||||
('system', 'apache24', '0'),
|
||||
('system', 'documentroot_use_default_value', '0'),
|
||||
('system', 'passwordcryptfunc', '1'),
|
||||
('system', 'axfrservers', ''),
|
||||
('panel', 'decimal_places', '4'),
|
||||
('panel', 'adminmail', 'admin@SERVERNAME'),
|
||||
('panel', 'phpmyadmin_url', ''),
|
||||
@@ -538,7 +539,7 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES
|
||||
('panel', 'phpconfigs_hidestdsubdomain', '0'),
|
||||
('panel', 'allow_theme_change_admin', '1'),
|
||||
('panel', 'allow_theme_change_customer', '1'),
|
||||
('panel', 'version', '0.9.29-dev2');
|
||||
('panel', 'version', '0.9.29-dev3');
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2087,3 +2087,18 @@ if (isFroxlorVersion('0.9.29-dev1')) {
|
||||
|
||||
updateToVersion('0.9.29-dev2');
|
||||
}
|
||||
|
||||
if (isFroxlorVersion('0.9.29-dev2')) {
|
||||
showUpdateStep("Updating from 0.9.29-dev2 to 0.9.29-dev3", true);
|
||||
lastStepStatus(0);
|
||||
|
||||
$system_afxrservers = isset($_POST['system_afxrservers']) ? $_POST['system_afxrservers'] : '';
|
||||
if (!preg_match('/^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})(, ?(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3}))*$/i', $system_afxrservers)) {
|
||||
$system_afxrservers = '';
|
||||
}
|
||||
showUpdateStep("Inserting new setting for AFXR server", true);
|
||||
$db->query("INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'axfrservers', '".$db->escape($system_afxrservers)."');");
|
||||
lastStepStatus(0);
|
||||
|
||||
updateToVersion('0.9.29-dev3');
|
||||
}
|
||||
|
||||
@@ -525,4 +525,12 @@ function parseAndOutputPreconfig(&$has_preconfig, &$return, $current_version)
|
||||
$question.= "Customers: ".makeyesno('allow_themechange_c', '1', '0', '1');
|
||||
eval("\$return.=\"" . getTemplate("update/preconfigitem") . "\";");
|
||||
}
|
||||
|
||||
if (versionInUpdate($current_version, '0.9.29-dev3')) {
|
||||
$has_preconfig = true;
|
||||
$description = 'There is now a possibility to specify AFXR servers for your bind zone-configuration<br />';
|
||||
$question = '<strong>Enter a comma-separated list of AFXR servers or leave empty (default):</strong> ';
|
||||
$question.= '<input type="text" class="text" name="system_afxrservers" value="" />';
|
||||
eval("\$return.=\"" . getTemplate("update/preconfigitem") . "\";");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,6 +73,6 @@ define('PACKAGE_ENABLED', 2);
|
||||
|
||||
// VERSION INFO
|
||||
|
||||
$version = '0.9.29-dev2';
|
||||
$version = '0.9.29-dev3';
|
||||
$dbversion = '2';
|
||||
$branding = '';
|
||||
|
||||
@@ -1933,12 +1933,12 @@ $lng['error']['stringmustntbeempty'] = 'The value for the field %s must not be e
|
||||
$lng['admin']['domain_editable']['title'] = 'Allow editing of domain';
|
||||
$lng['admin']['domain_editable']['desc'] = 'If set to yes, the customer is allowed to change several domain-settings.<br />If set to no, nothing can be changed by the customer.';
|
||||
|
||||
// Added in Froxlor 0.9.29-dev1
|
||||
// Added in Froxlor 0.9.29-dev
|
||||
$lng['serversettings']['panel_phpconfigs_hidestdsubdomain']['title'] = 'Hide standard-subdomains in PHP-configuration overview';
|
||||
$lng['serversettings']['panel_phpconfigs_hidestdsubdomain']['description'] = 'If activated the standard-subdomains for customers will not be displayed in the php-configurations overview<br /><br />Note: This is only visible if you have enabled FCGID or PHP-FPM';
|
||||
$lng['serversettings']['passwordcryptfunc']['title'] = 'Chose which password-crypt method is to be used';
|
||||
$lng['serversettings']['systemdefault'] = 'System default';
|
||||
|
||||
// Added in Froxlor 0.9.29-dev2
|
||||
$lng['serversettings']['panel_allow_theme_change_admin'] = 'Allow admins to change the theme';
|
||||
$lng['serversettings']['panel_allow_theme_change_customer'] = 'Allow customers to change the theme';
|
||||
$lng['serversettings']['axfrservers']['title'] = 'AXFR servers';
|
||||
$lng['serversettings']['axfrservers']['description'] = 'A comma separated list of IP addresses allowed to transfer (AXFR) dns zones.';
|
||||
|
||||
@@ -1654,12 +1654,12 @@ $lng['error']['stringmustntbeempty'] = 'Der Wert für das Feld %s darf nicht lee
|
||||
$lng['admin']['domain_editable']['title'] = 'Erlaube Bearbeiten der Domain';
|
||||
$lng['admin']['domain_editable']['desc'] = 'Wenn ja, darf der Kunde verschiedene Einstellungen anpassen.<br />Wenn nein, darf nichts durch den Kunden geändert werden.';
|
||||
|
||||
// Added in Froxlor 0.9.29-dev1
|
||||
// Added in Froxlor 0.9.29-dev
|
||||
$lng['serversettings']['panel_phpconfigs_hidestdsubdomain']['title'] = 'Verstecke Standard-Subdomains in PHP-Konfigurations-Übersicht';
|
||||
$lng['serversettings']['panel_phpconfigs_hidestdsubdomain']['description'] = 'Wenn aktiviert, werden die Standard-Subdomains der Kunden nicht mehr in der PHP-Konfigurations-Übersicht angezeigt.<br /><br />Hinweis: Nur relevant, wenn FCGID oder PHP-FPM aktiviert ist.';
|
||||
$lng['serversettings']['passwordcryptfunc']['title'] = 'Wähle zu verwendende Passwort-Verschlüsselungsmethode';
|
||||
$lng['serversettings']['systemdefault'] = 'Systemstandard';
|
||||
|
||||
// Added in Froxlor 0.9.29-dev2
|
||||
$lng['serversettings']['panel_allow_theme_change_admin'] = 'Erlaube Admins das Theme zu wechseln';
|
||||
$lng['serversettings']['panel_allow_theme_change_customer'] = 'Erlaube Kunden das Theme zu wechseln';
|
||||
$lng['serversettings']['axfrservers']['title'] = 'AXFR Server';
|
||||
$lng['serversettings']['axfrservers']['description'] = 'Eine komma-getrennte Liste von IP Adressen, die DNS Zonen transferieren dürfen (AXFR).';
|
||||
|
||||
@@ -36,26 +36,22 @@ class bind
|
||||
public $settings = array();
|
||||
public $nameservers = array();
|
||||
public $mxservers = array();
|
||||
public $axfrservers = array();
|
||||
|
||||
public function __construct($db, $logger, $debugHandler, $settings) {
|
||||
|
||||
public function __construct($db, $logger, $debugHandler, $settings)
|
||||
{
|
||||
$this->db = $db;
|
||||
$this->logger = $logger;
|
||||
$this->debugHandler = $debugHandler;
|
||||
$this->settings = $settings;
|
||||
|
||||
if($this->settings['system']['nameservers'] != '')
|
||||
{
|
||||
if ($this->settings['system']['nameservers'] != '') {
|
||||
$nameservers = explode(',', $this->settings['system']['nameservers']);
|
||||
foreach($nameservers as $nameserver)
|
||||
{
|
||||
foreach ($nameservers as $nameserver) {
|
||||
$nameserver_ip = gethostbyname(trim($nameserver));
|
||||
|
||||
if(substr($nameserver, -1, 1) != '.')
|
||||
{
|
||||
if (substr($nameserver, -1, 1) != '.') {
|
||||
$nameserver.= '.';
|
||||
}
|
||||
|
||||
$this->nameservers[] = array(
|
||||
'hostname' => trim($nameserver),
|
||||
'ip' => trim($nameserver_ip)
|
||||
@@ -63,19 +59,23 @@ class bind
|
||||
}
|
||||
}
|
||||
|
||||
if($this->settings['system']['mxservers'] != '')
|
||||
{
|
||||
if ($this->settings['system']['mxservers'] != '') {
|
||||
$mxservers = explode(',', $this->settings['system']['mxservers']);
|
||||
foreach($mxservers as $mxserver)
|
||||
{
|
||||
if(substr($mxserver, -1, 1) != '.')
|
||||
{
|
||||
foreach ($mxservers as $mxserver) {
|
||||
if (substr($mxserver, -1, 1) != '.') {
|
||||
$mxserver.= '.';
|
||||
}
|
||||
|
||||
$this->mxservers[] = $mxserver;
|
||||
}
|
||||
}
|
||||
|
||||
// AXFR server #100
|
||||
if ($this->settings['system']['axfrservers'] != '') {
|
||||
$axfrservers = explode(',', $this->settings['system']['axfrservers']);
|
||||
foreach ($axfrservers as $axfrserver) {
|
||||
$this->axfrservers[] = trim($axfrservers);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function writeConfigs()
|
||||
@@ -128,6 +128,15 @@ class bind
|
||||
$bindconf_file.= ' };' . "\n";
|
||||
}
|
||||
|
||||
// AXFR server #100
|
||||
if (count($this->axfrservers) > 0) {
|
||||
foreach ($this->axfrservers as $axfrserver) {
|
||||
if (validate_ip($axfrserver, true) !== false) {
|
||||
$bindconf_file.= ' ' . $axfrserver . ';' . "\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$bindconf_file.= '};' . "\n";
|
||||
$bindconf_file.= "\n";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user