Florian Schaal
2014-12-14 a549793dccc43cbbd47b40fb339c1a1c37cbc6e6
Merge branch 'master' of http://git.ispconfig.org/ispconfig/ispconfig3
1 files added
21 files modified
167 ■■■■■ changed files
install/sql/incremental/upd_0080.sql 1 ●●●● patch | view | raw | blame | history
install/sql/ispconfig3.sql 1 ●●●● patch | view | raw | blame | history
install/tpl/server.ini.master 1 ●●●● patch | view | raw | blame | history
interface/lib/classes/validate_client.inc.php 78 ●●●●● patch | view | raw | blame | history
interface/web/admin/form/server_config.tform.php 9 ●●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/de_server_config.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/lib/lang/en_server_config.lng 1 ●●●● patch | view | raw | blame | history
interface/web/admin/templates/server_config_web_edit.htm 8 ●●●●● patch | view | raw | blame | history
interface/web/client/form/client.tform.php 7 ●●●● patch | view | raw | blame | history
interface/web/client/form/reseller.tform.php 7 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/de_client.lng 3 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/de_reseller.lng 3 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/en_client.lng 1 ●●●● patch | view | raw | blame | history
interface/web/client/lib/lang/en_reseller.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/form/web_vhost_domain.tform.php 9 ●●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/de_web_vhost_domain.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/lib/lang/en_web_vhost_domain.lng 1 ●●●● patch | view | raw | blame | history
interface/web/sites/templates/web_vhost_domain_advanced.htm 2 ●●● patch | view | raw | blame | history
interface/web/sites/templates/web_vhost_domain_ssl.htm 10 ●●●●● patch | view | raw | blame | history
interface/web/sites/web_vhost_domain_edit.php 6 ●●●●● patch | view | raw | blame | history
server/conf/apache_apps.vhost.master 10 ●●●● patch | view | raw | blame | history
server/conf/nginx_vhost.conf.master 6 ●●●● patch | view | raw | blame | history
install/sql/incremental/upd_0080.sql
New file
@@ -0,0 +1 @@
ALTER TABLE `web_domain` ADD COLUMN `enable_spdy` ENUM('y','n') NULL DEFAULT 'n' AFTER `proxy_directives`;
install/sql/ispconfig3.sql
@@ -1877,6 +1877,7 @@
  `traffic_quota_lock` enum('n','y') NOT NULL default 'n',
  `fastcgi_php_version` varchar(255) DEFAULT NULL,
  `proxy_directives` mediumtext,
  `enable_spdy` ENUM('y','n') NULL DEFAULT 'n',
  `last_quota_notification` date NULL default NULL,
  `rewrite_rules` mediumtext,
  `added_date` date NOT NULL DEFAULT '0000-00-00',
install/tpl/server.ini.master
@@ -85,6 +85,7 @@
php_ini_path_cgi=/etc/php5/cgi/php.ini
check_apache_config=y
enable_sni=y
enable_spdy=n
enable_ip_wildcard=y
overtraffic_notify_admin=y
overtraffic_notify_client=y
interface/lib/classes/validate_client.inc.php
@@ -136,7 +136,85 @@
        }
    }
    function check_vat_id ($field_name, $field_value, $validator){
        global $app, $page;
        $vatid = trim($field_value);
        if(isset($app->remoting_lib->primary_id)) {
            $country = $app->remoting_lib->dataRecord['country'];
        } else {
            $country = $page->dataRecord['country'];
        }
        // check if country is member of EU
        $country_details = $app->db->queryOneRecord("SELECT * FROM country WHERE iso = '".$country."'");
        if($country_details['eu'] == 'y' && $vatid != ''){
            $vatid = preg_replace('/\s+/', '', $vatid);
            $vatid = str_replace(array('.', '-', ','), '', $vatid);
            $cc = substr($vatid, 0, 2);
            $vn = substr($vatid, 2);
            // Test if the country of the VAT-ID matches the country of the customer
            if($country != ''){
                if(strtoupper($cc) != $country){
                    $errmsg = $validator['errmsg'];
                    if(isset($app->tform->wordbook[$errmsg])) {
                        return $app->tform->wordbook[$errmsg]."<br>\r\n";
                    } else {
                        return $errmsg."<br>\r\n";
                    }
                }
            }
            $client = new SoapClient("http://ec.europa.eu/taxation_customs/vies/checkVatService.wsdl");
            if($client){
                $params = array('countryCode' => $cc, 'vatNumber' => $vn);
                try{
                    $r = $client->checkVat($params);
                    if($r->valid == true){
                    } else {
                        $errmsg = $validator['errmsg'];
                            if(isset($app->tform->wordbook[$errmsg])) {
                                return $app->tform->wordbook[$errmsg]."<br>\r\n";
                            } else {
                                return $errmsg."<br>\r\n";
                            }
                    }
                    // This foreach shows every single line of the returned information
                    /*
                    foreach($r as $k=>$prop){
                        echo $k . ': ' . $prop;
                    }
                    */
                } catch(SoapFault $e) {
                    //echo 'Error, see message: '.$e->faultstring;
                    switch ($e->faultstring) {
                        case 'INVALID_INPUT':
                            $errmsg = $validator['errmsg'];
                            if(isset($app->tform->wordbook[$errmsg])) {
                                return $app->tform->wordbook[$errmsg]."<br>\r\n";
                            } else {
                                return $errmsg."<br>\r\n";
                            }
                            break;
                        // the following cases shouldn't be the user's fault, so we return no error
                        case 'SERVICE_UNAVAILABLE':
                        case 'MS_UNAVAILABLE':
                        case 'TIMEOUT':
                        case 'SERVER_BUSY':
                            break;
                    }
                }
            } else {
                // Connection to host not possible, europe.eu down?
                // this shouldn't be the user's fault, so we return no error
            }
        }
    }
}
interface/web/admin/form/server_config.tform.php
@@ -1021,6 +1021,15 @@
            'width' => '40',
            'maxlength' => '255'
        ),
        'enable_spdy' => array (
            'datatype' => 'VARCHAR',
            'formtype' => 'CHECKBOX',
            'default'  => 'n',
            'value' => array (
                0 => 'n',
                1 => 'y'
            )
        ),
        'apps_vhost_port' => array(
            'datatype' => 'VARCHAR',
            'formtype' => 'TEXT',
interface/web/admin/lib/lang/de_server_config.lng
@@ -262,4 +262,5 @@
$wb['php_ini_check_minutes_error_empty'] = 'Bitte geben Sie einen Wert an, wie oft die php.ini auf Änderungen geprüft werden soll.';
$wb['php_ini_check_minutes_info_txt'] = '0 = keine Prüfung';
$wb['php_handler_txt'] = 'Standard-PHP-Handler';
$wb['enable_spdy_txt'] = 'Stellt SPDY zur Verfügung';
?>
interface/web/admin/lib/lang/en_server_config.lng
@@ -263,4 +263,5 @@
$wb['php_ini_check_minutes_txt'] = 'Check php.ini every X minutes for changes';
$wb['php_ini_check_minutes_error_empty'] = 'Please specify a value how often php.ini should be checked for changes.';
$wb['php_ini_check_minutes_info_txt'] = '0 = no check';
$wb['enable_spdy_txt'] = 'Makes SPDY available';
?>
interface/web/admin/templates/server_config_web_edit.htm
@@ -161,6 +161,14 @@
                        {tmpl_var name='enable_sni'}
                    </div>
                </div>
                <div class="ctrlHolder">
                    <p class="label">
                        <tmpl_var name="enable_spdy_txt">
                    </p>
                    <div class="multiField">
                        <tmpl_var name="enable_spdy">
                    </div>
                </div>
                <div class="ctrlHolder">
                    <label for="CA_path">{tmpl_var name='CA_path_txt'}</label>
                    <input name="CA_path" id="CA_path" value="{tmpl_var name='CA_path'}" size="40" maxlength="255" type="text" autocomplete="off" class="textInput" />
interface/web/client/form/client.tform.php
@@ -367,7 +367,12 @@
            'width'  => '30',
            'maxlength' => '255',
            'rows'  => '',
            'cols'  => ''
            'cols'  => '',
            'validators' => array (  0 => array ( 'type' => 'CUSTOM',
                    'class' => 'validate_client',
                    'function' => 'check_vat_id',
                    'errmsg'=> 'invalid_vat_id'),
                ),
        ),
        'company_id' => array (
            'datatype' => 'VARCHAR',
interface/web/client/form/reseller.tform.php
@@ -364,7 +364,12 @@
            'width'  => '30',
            'maxlength' => '255',
            'rows'  => '',
            'cols'  => ''
            'cols'  => '',
            'validators' => array (  0 => array ( 'type' => 'CUSTOM',
                    'class' => 'validate_client',
                    'function' => 'check_vat_id',
                    'errmsg'=> 'invalid_vat_id'),
                ),
        ),
        'company_id' => array (
            'datatype' => 'VARCHAR',
interface/web/client/lib/lang/de_client.lng
@@ -110,7 +110,7 @@
$wb['limit_backup_txt'] = 'Backupfunktion verfügbar';
$wb['limit_dns_slave_zone_error_notint'] = 'Das Secondary DNS Zonen Limit muss eine Zahl sein.';
$wb['customer_no_txt'] = 'Kundennummer';
$wb['vat_id_txt'] = 'USt-ID';
$wb['vat_id_txt'] = 'USt.-ID';
$wb['required_fields_txt'] = '* Benötigte Felder';
$wb['limit_mailmailinglist_txt'] = 'Max. Anzahl an Mailinglisten';
$wb['limit_mailmailinglist_error_notint'] = 'Das Mailinglisten Limit muss eine Zahl sein.';
@@ -176,4 +176,5 @@
$wb['reseller_txt'] = 'Reseller';
$wb['btn_save_txt'] = 'Speichern';
$wb['btn_cancel_txt'] = 'Abbrechen';
$wb['invalid_vat_id'] = 'Die USt.-ID ist ungültig.';
?>
interface/web/client/lib/lang/de_reseller.lng
@@ -106,7 +106,7 @@
$wb['limit_dns_slave_zone_error_notint'] = 'Das Secondary DNS Zonen Limit muss eine Zahl sein.';
$wb['limit_dns_record_error_notint'] = 'Das DNS Eintrag Limit muss eine Zahl sein.';
$wb['customer_no_txt'] = 'Kundennummer';
$wb['vat_id_txt'] = 'USt-ID';
$wb['vat_id_txt'] = 'USt.-ID';
$wb['required_fields_txt'] = '* Benötigte Felder';
$wb['limit_webdav_user_txt'] = 'Max. Anzahl an WebDAV Benutzern';
$wb['limit_webdav_user_error_notint'] = 'Das WebDAV Benutzer Limit muss eine Zahl sein.';
@@ -160,4 +160,5 @@
$wb['limit_domainmodule_txt'] = 'Domainmodule Limit';
$wb['client_limits_txt'] = 'Client Limits';
$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than \\"custom\\" is selected.';
$wb['invalid_vat_id'] = 'Die USt.-ID ist ungültig.';
?>
interface/web/client/lib/lang/en_client.lng
@@ -179,4 +179,5 @@
$wb['reseller_txt'] = 'Reseller';
$wb['btn_save_txt'] = "Save";
$wb['btn_cancel_txt'] = "Cancel";
$wb['invalid_vat_id'] = 'The VAT ID is invalid.';
?>
interface/web/client/lib/lang/en_reseller.lng
@@ -178,4 +178,5 @@
$wb['limit_domainmodule_txt'] = 'Domainmodule Limit';
$wb['client_limits_txt'] = 'Client Limits';
$wb['err_msg_master_tpl_set'] = 'All custom limit settings are ignored if any master template other than "custom" is selected.';
$wb['invalid_vat_id'] = 'The VAT ID is invalid.';
?>
interface/web/sites/form/web_vhost_domain.tform.php
@@ -523,6 +523,15 @@
                'default' => '',
                'value'  => array('' => 'none_txt', 'save' => 'save_certificate_txt', 'create' => 'create_certificate_txt', 'del' => 'delete_certificate_txt')
            ),
            'enable_spdy' => array (
                'datatype' => 'VARCHAR',
                'formtype' => 'CHECKBOX',
                'default'  => 'n',
                'value' => array (
                    0 => 'n',
                    1 => 'y'
                )
            ),
            //#################################
            // ENDE Datatable fields
            //#################################
interface/web/sites/lib/lang/de_web_vhost_domain.lng
@@ -136,4 +136,5 @@
$wb['apache_directive_blocked_error'] = 'Die Apache Direktive wurde durch die Sicherheitsrichtline blockiert:';
$wb['btn_save_txt'] = 'Speichern';
$wb['btn_cancel_txt'] = 'Abbrechen';
$wb['enable_spdy_txt'] = 'Aktiviere SPDY';
?>
interface/web/sites/lib/lang/en_web_vhost_domain.lng
@@ -139,4 +139,5 @@
$wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
$wb['btn_save_txt'] = "Save";
$wb['btn_cancel_txt'] = "Cancel";
$wb['enable_spdy_txt'] = 'Enable SPDY';
?>
interface/web/sites/templates/web_vhost_domain_advanced.htm
@@ -176,4 +176,4 @@
        });
    }
            
</script>
</script>
interface/web/sites/templates/web_vhost_domain_ssl.htm
@@ -64,6 +64,14 @@
                    {tmpl_var name='ssl_action'}
                </select>
            </div>
            {tmpl_if name="is_spdy_enabled"}
            <div class="ctrlHolder">
                <p class="label">{tmpl_var name='enable_spdy_txt'}</p>
                <div class="multiField">
                    {tmpl_var name="enable_spdy"}
                </div>
            </div>
            {/tmpl_if}
        </fieldset>
        <input type="hidden" name="id" value="{tmpl_var name='id'}">
@@ -74,4 +82,4 @@
        </div>
    </div>
</div>
</div>
interface/web/sites/web_vhost_domain_edit.php
@@ -699,6 +699,8 @@
        
        $app->tpl->setVar('vhostdomain_type', $this->_vhostdomain_type);
        $app->tpl->setVar('is_spdy_enabled', ($web_config['enable_spdy'] === 'y'));
        parent::onShowEnd();
    }
@@ -1068,6 +1070,10 @@
            }
        }
        if($web_config['enable_spdy'] === 'n') {
            unset($app->tform->formDef["tabs"]['ssl']['fields']['enable_spdy']);
        }
        parent::onSubmit();
    }
server/conf/apache_apps.vhost.master
@@ -10,11 +10,17 @@
<VirtualHost {tmpl_var name='apps_vhost_ip'}:{tmpl_var name='apps_vhost_port'}>
  ServerAdmin webmaster@localhost
  {tmpl_var name='apps_vhost_servername'}
  <FilesMatch "\.ph(p3?|tml)$">
    SetHandler None
  </FilesMatch>
  {tmpl_if name="enable_spdy" op="==" value="y"}
  <IfModule spdy_module>
    SpdyEnabled on
  </IfModule>
  {/tmpl_if}
  <IfModule mod_php5.c>
    DocumentRoot {tmpl_var name='apps_vhost_dir'}
    AddType application/x-httpd-php .php
server/conf/nginx_vhost.conf.master
@@ -5,10 +5,10 @@
</tmpl_if>
        
<tmpl_if name='ssl_enabled'>
        listen <tmpl_var name='ip_address'>:443 ssl;
        listen <tmpl_var name='ip_address'>:443 ssl{tmpl_if name='enable_spdy' op='==' value='y'} spdy{/tmpl_if};
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
<tmpl_if name='ipv6_enabled'>
        listen [<tmpl_var name='ipv6_address'>]:443 ssl;
        listen [<tmpl_var name='ipv6_address'>]:443 ssl{tmpl_if name='enable_spdy' op='==' value='y'} spdy{/tmpl_if};;
</tmpl_if>
        ssl_certificate <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.crt;
        ssl_certificate_key <tmpl_var name='document_root'>/ssl/<tmpl_var name='ssl_domain'>.key;
@@ -242,4 +242,4 @@
        }
</tmpl_if>
}
</tmpl_loop>
</tmpl_loop>