From 67b0cb394d6b89b19087c285765285806e7da95c Mon Sep 17 00:00:00 2001
From: Marius Burkard <m.burkard@pixcept.de>
Date: Fri, 12 Feb 2016 06:21:27 -0500
Subject: [PATCH] Closes #3754 and #3755 - added limit for letsencrypt and directive snippets selector to client limits - hide ssl tab if letsencrypt is selected

---
 interface/web/sites/web_vhost_domain_edit.php                  |    6 ++-
 interface/web/client/templates/client_edit_limits.htm          |   12 ++++++
 interface/web/client/form/client.tform.php                     |   12 ++++++
 interface/web/sites/lib/lang/en_web_vhost_domain.lng           |    1 
 interface/web/client/lib/lang/de_reseller.lng                  |    2 +
 interface/web/client/lib/lang/en_reseller.lng                  |    3 +
 interface/web/client/lib/lang/de_client.lng                    |    2 +
 interface/web/client/lib/lang/en_client.lng                    |    2 +
 interface/web/sites/lib/lang/de_web_vhost_domain.lng           |    1 
 interface/web/sites/templates/web_vhost_domain_edit.htm        |    6 ++-
 install/sql/ispconfig3.sql                                     |    2 +
 install/sql/incremental/upd_dev_collection.sql                 |    7 ++-
 interface/web/client/lib/lang/de_client_template.lng           |    2 +
 interface/web/client/templates/reseller_edit_limits.htm        |   12 ++++++
 interface/web/client/lib/lang/en_client_template.lng           |    2 +
 interface/web/client/form/client_template.tform.php            |   12 ++++++
 interface/web/client/form/reseller.tform.php                   |   12 ++++++
 interface/web/client/templates/client_template_edit_limits.htm |   12 ++++++
 interface/web/sites/form/web_vhost_domain.tform.php            |    3 +
 19 files changed, 103 insertions(+), 8 deletions(-)

diff --git a/install/sql/incremental/upd_dev_collection.sql b/install/sql/incremental/upd_dev_collection.sql
index 32e85bd..b909bc2 100644
--- a/install/sql/incremental/upd_dev_collection.sql
+++ b/install/sql/incremental/upd_dev_collection.sql
@@ -204,12 +204,13 @@
 ALTER TABLE `mail_forwarding` ADD COLUMN `allow_send_as` ENUM('n','y') NOT NULL DEFAULT 'n' AFTER `active`;
 UPDATE `mail_forwarding` SET `allow_send_as` = 'y' WHERE `type` = 'alias';
 
---- DNSSEC-Implementation by dark alex
---- TODO: Review and resolve conflicts if more has been done in that column
 ALTER TABLE `dns_rr` CHANGE COLUMN `type` `type` ENUM('A','AAAA','ALIAS','CNAME','DS','HINFO','LOC','MX','NAPTR','NS','PTR','RP','SRV','TXT','TLSA','DNSKEY') NULL DEFAULT NULL AFTER `name`;
 
 ALTER TABLE `dns_soa`
 	ADD COLUMN `dnssec_initialized` ENUM('Y','N') NOT NULL DEFAULT 'N',
 	ADD COLUMN `dnssec_wanted` ENUM('Y','N') NOT NULL DEFAULT 'N',
 	ADD COLUMN `dnssec_last_signed` BIGINT NOT NULL DEFAULT '0',
-	ADD COLUMN `dnssec_info` TEXT NULL;
\ No newline at end of file
+	ADD COLUMN `dnssec_info` TEXT NULL;
+
+ALTER TABLE `client` ADD COLUMN `limit_ssl_letsencrypt` enum('n','y') NOT NULL DEFAULT 'n' AFTER `limit_ssl`;
+ALTER TABLE `client_template` ADD COLUMN `limit_ssl_letsencrypt` enum('n','y') NOT NULL DEFAULT 'n' AFTER `limit_ssl`;
diff --git a/install/sql/ispconfig3.sql b/install/sql/ispconfig3.sql
index 68cf272..d025b7f 100644
--- a/install/sql/ispconfig3.sql
+++ b/install/sql/ispconfig3.sql
@@ -211,6 +211,7 @@
   `limit_hterror` enum('n','y') NOT NULL DEFAULT 'n',
   `limit_wildcard` enum('n','y') NOT NULL DEFAULT 'n',
   `limit_ssl` enum('n','y') NOT NULL DEFAULT 'n',
+  `limit_ssl_letsencrypt` enum('n','y') NOT NULL DEFAULT 'n',
   `limit_web_subdomain` int(11) NOT NULL DEFAULT '-1',
   `limit_web_aliasdomain` int(11) NOT NULL DEFAULT '-1',
   `limit_ftp_user` int(11) NOT NULL DEFAULT '-1',
@@ -335,6 +336,7 @@
   `limit_hterror` enum('n','y') NOT NULL DEFAULT 'n',
   `limit_wildcard` enum('n','y') NOT NULL DEFAULT 'n',
   `limit_ssl` enum('n','y') NOT NULL DEFAULT 'n',
+  `limit_ssl_letsencrypt` enum('n','y') NOT NULL DEFAULT 'n',
   `limit_web_subdomain` int(11) NOT NULL default '-1',
   `limit_web_aliasdomain` int(11) NOT NULL default '-1',
   `limit_ftp_user` int(11) NOT NULL default '-1',
diff --git a/interface/web/client/form/client.tform.php b/interface/web/client/form/client.tform.php
index 4415768..4e972b9 100644
--- a/interface/web/client/form/client.tform.php
+++ b/interface/web/client/form/client.tform.php
@@ -1022,6 +1022,12 @@
 			'default' => 'n',
 			'value'  => array(0 => 'n', 1 => 'y')
 		),
+		'limit_ssl_letsencrypt' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
 		'limit_web_aliasdomain' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
@@ -1109,6 +1115,12 @@
 			'default' => 'y',
 			'value'  => array(0 => 'n', 1 => 'y')
 		),
+		'limit_directive_snippets' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
 		'default_dnsserver' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'SELECT',
diff --git a/interface/web/client/form/client_template.tform.php b/interface/web/client/form/client_template.tform.php
index 21f8596..2da539c 100644
--- a/interface/web/client/form/client_template.tform.php
+++ b/interface/web/client/form/client_template.tform.php
@@ -522,6 +522,12 @@
 			'default' => 'n',
 			'value'  => array(0 => 'n', 1 => 'y')
 		),
+		'limit_ssl_letsencrypt' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
 		'limit_web_aliasdomain' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
@@ -612,6 +618,12 @@
 			'default' => 'y',
 			'value'  => array(0 => 'n', 1 => 'y')
 		),
+		'limit_directive_snippets' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
 		'default_dnsserver' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'SELECT',
diff --git a/interface/web/client/form/reseller.tform.php b/interface/web/client/form/reseller.tform.php
index 8f4e5ba..50d5e74 100644
--- a/interface/web/client/form/reseller.tform.php
+++ b/interface/web/client/form/reseller.tform.php
@@ -1019,6 +1019,12 @@
 			'default' => 'n',
 			'value'  => array(0 => 'n', 1 => 'y')
 		),
+		'limit_ssl_letsencrypt' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
 		'limit_web_aliasdomain' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'TEXT',
@@ -1105,6 +1111,12 @@
 			'default' => 'y',
 			'value'  => array(0 => 'n', 1 => 'y')
 		),
+		'limit_directive_snippets' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value'  => array(0 => 'n', 1 => 'y')
+		),
 		'default_dnsserver' => array (
 			'datatype' => 'INTEGER',
 			'formtype' => 'SELECT',
diff --git a/interface/web/client/lib/lang/de_client.lng b/interface/web/client/lib/lang/de_client.lng
index 45c6eb9..7036842 100644
--- a/interface/web/client/lib/lang/de_client.lng
+++ b/interface/web/client/lib/lang/de_client.lng
@@ -98,6 +98,7 @@
 $wb['limit_hterror_txt'] = 'Eigene Fehlerseiten verfügbar';
 $wb['limit_wildcard_txt'] = 'Wildcard Subdomain verfügbar';
 $wb['limit_ssl_txt'] = 'SSL verfügbar';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt verfügbar';
 $wb['limit_client_error'] = 'Die maximale Anzahl an Kunden wurde erreicht.';
 $wb['limit_mailaliasdomain_txt'] = 'Max. Anzahl an Domain Aliases';
 $wb['limit_mailaliasdomain_error_notint'] = 'Das E-Mail Domain Alias Limit muss eine Zahl sein.';
@@ -194,4 +195,5 @@
 $wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available';
 $wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
 $wb['limit_xmpp_status_txt'] = 'Status host available';
+$wb['limit_directive_snippets_txt'] = 'Webserver-Konfigurationsauswahl sichtbar';
 ?>
diff --git a/interface/web/client/lib/lang/de_client_template.lng b/interface/web/client/lib/lang/de_client_template.lng
index 37f85fe..47e647f 100644
--- a/interface/web/client/lib/lang/de_client_template.lng
+++ b/interface/web/client/lib/lang/de_client_template.lng
@@ -77,6 +77,7 @@
 $wb['limit_hterror_txt'] = 'Eigene Fehlerseiten verfügbar';
 $wb['limit_wildcard_txt'] = 'Wildcard Subdomain verfügbar';
 $wb['limit_ssl_txt'] = 'SSL verfügbar';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt verfügbar';
 $wb['template_type_txt'] = 'Vorlagen Typ';
 $wb['template_name_txt'] = 'Vorlagen Name';
 $wb['web_limits_txt'] = 'Web Limits';
@@ -114,4 +115,5 @@
 $wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
 $wb['limit_xmpp_status_txt'] = 'Status host available';
 $wb['dns_servers_txt'] = 'DNS servers';
+$wb['limit_directive_snippets_txt'] = 'Webserver-Konfigurationsauswahl sichtbar';
 ?>
diff --git a/interface/web/client/lib/lang/de_reseller.lng b/interface/web/client/lib/lang/de_reseller.lng
index 43deed8..137d206 100644
--- a/interface/web/client/lib/lang/de_reseller.lng
+++ b/interface/web/client/lib/lang/de_reseller.lng
@@ -97,6 +97,7 @@
 $wb['limit_hterror_txt'] = 'Eigene Fehlerseiten verfügbar';
 $wb['limit_wildcard_txt'] = 'Wildcard Subdomain verfügbar';
 $wb['limit_ssl_txt'] = 'SSL verfügbar';
+$wb['limit_ssl_letsencrypt_txt'] = 'Let\'s Encrypt verfügbar';
 $wb['limit_client_error'] = 'Die maximale Anzahl an Kunden wurde erreicht.';
 $wb['limit_client_error_positive_or_unlimited'] = 'Die Anzahl an Kunden muss > 0 sein';
 $wb['limit_web_quota_txt'] = 'Speicherplatzbeschränkung';
@@ -196,4 +197,5 @@
 $wb['limit_xmpp_vjud_txt'] = 'VJUD user directory available';
 $wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
 $wb['limit_xmpp_status_txt'] = 'Status host available';
+$wb['limit_directive_snippets_txt'] = 'Webserver-Konfigurationsauswahl sichtbar';
 ?>
diff --git a/interface/web/client/lib/lang/en_client.lng b/interface/web/client/lib/lang/en_client.lng
index 9514324..ac3336d 100644
--- a/interface/web/client/lib/lang/en_client.lng
+++ b/interface/web/client/lib/lang/en_client.lng
@@ -110,6 +110,7 @@
 $wb["limit_hterror_txt"] = "Custom error docs available";
 $wb["limit_wildcard_txt"] = "Wildcard subdomain available";
 $wb["limit_ssl_txt"] = "SSL available";
+$wb["limit_ssl_letsencrypt_txt"] = "Let\'s Encrypt available";
 $wb["limit_client_error"] = 'The max. number of clients is reached.';
 $wb["limit_web_quota_txt"] = 'Web Quota';
 $wb["limit_traffic_quota_txt"] = 'Traffic Quota';
@@ -200,4 +201,5 @@
 $wb['btn_cancel_txt'] = "Cancel";
 $wb['invalid_vat_id'] = 'The VAT ID is invalid.';
 $wb["email_error_empty"] = "Email is empty";
+$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 ?>
diff --git a/interface/web/client/lib/lang/en_client_template.lng b/interface/web/client/lib/lang/en_client_template.lng
index 27f8d8a..7fc3d8c 100644
--- a/interface/web/client/lib/lang/en_client_template.lng
+++ b/interface/web/client/lib/lang/en_client_template.lng
@@ -85,6 +85,7 @@
 $wb["limit_hterror_txt"] = "Custom error docs available";
 $wb["limit_wildcard_txt"] = "Wildcard subdomain available";
 $wb["limit_ssl_txt"] = "SSL available";
+$wb["limit_ssl_letsencrypt_txt"] = "Let\'s Encrypt available";
 $wb["web_limits_txt"] = 'Web Limits';
 $wb["email_limits_txt"] = 'Email Limits';
 $wb["database_limits_txt"] = 'Database Limits';
@@ -116,4 +117,5 @@
 $wb['limit_xmpp_proxy_txt'] = 'Bytestream proxy available';
 $wb['limit_xmpp_status_txt'] = 'Status host available';
 $wb["dns_servers_txt"] = 'DNS servers';
+$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
 ?>
diff --git a/interface/web/client/lib/lang/en_reseller.lng b/interface/web/client/lib/lang/en_reseller.lng
index 824f750..1cc3e5e 100644
--- a/interface/web/client/lib/lang/en_reseller.lng
+++ b/interface/web/client/lib/lang/en_reseller.lng
@@ -108,6 +108,7 @@
 $wb["limit_hterror_txt"] = "Custom error docs available";
 $wb["limit_wildcard_txt"] = "Wildcard subdomain available";
 $wb["limit_ssl_txt"] = "SSL available";
+$wb["limit_ssl_letsencrypt_txt"] = "Let\'s Encrypt available";
 $wb["limit_client_error"] = 'The max. number of clients is reached.';
 $wb["limit_client_error_positive_or_unlimited"] = 'The number of clients must be > 0 or -1 (unlimited)';
 $wb["limit_web_quota_txt"] = 'Web Quota';
@@ -200,4 +201,6 @@
 $wb["btn_save_txt"] = "Save";
 $wb["btn_cancel_txt"] = "Cancel";
 $wb["email_error_empty"] = "Email is empty";
+$wb['limit_directive_snippets_txt'] = 'Show web server config selection';
+
 ?>
diff --git a/interface/web/client/templates/client_edit_limits.htm b/interface/web/client/templates/client_edit_limits.htm
index 8c133d4..01b1b8b 100644
--- a/interface/web/client/templates/client_edit_limits.htm
+++ b/interface/web/client/templates/client_edit_limits.htm
@@ -137,6 +137,12 @@
                     </div>
                 </div>
                 <div class="form-group">
+                    <label class="col-sm-3 control-label">{tmpl_var name='limit_ssl_letsencrypt_txt'}</label>
+                    <div class="col-sm-9">
+                        {tmpl_var name='limit_ssl_letsencrypt'}
+                    </div>
+                </div>
+                <div class="form-group">
                     <label for="limit_web_aliasdomain" class="col-sm-3 control-label">{tmpl_var name='limit_web_aliasdomain_txt'}</label>
                     <div class="col-sm-9"><input type="text" name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" class="form-control" /></div></div>
                 <div class="form-group">
@@ -163,6 +169,12 @@
                         {tmpl_var name='limit_backup'}
                     </div>
                 </div>
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">{tmpl_var name='limit_directive_snippets_txt'}</label>
+                    <div class="col-sm-9">
+                        {tmpl_var name='limit_directive_snippets'}
+                    </div>
+                </div>
       </div>
 	</div>
   </div>
diff --git a/interface/web/client/templates/client_template_edit_limits.htm b/interface/web/client/templates/client_template_edit_limits.htm
index c7a4001..09bcce2 100644
--- a/interface/web/client/templates/client_template_edit_limits.htm
+++ b/interface/web/client/templates/client_template_edit_limits.htm
@@ -89,6 +89,12 @@
                     </div>
                 </div>
                 <div class="form-group">
+                    <label class="col-sm-3 control-label">{tmpl_var name='limit_ssl_letsencrypt_txt'}</label>
+                    <div class="col-sm-9">
+                        {tmpl_var name='limit_ssl_letsencrypt'}
+                    </div>
+                </div>
+                <div class="form-group">
                     <label for="limit_web_aliasdomain" class="col-sm-3 control-label">{tmpl_var name='limit_web_aliasdomain_txt'}</label>
                     <div class="col-sm-9"><input type="text" name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" class="form-control" /></div></div>
                 <div class="form-group">
@@ -115,6 +121,12 @@
                         {tmpl_var name='limit_backup'}
                     </div>
                 </div>
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">{tmpl_var name='limit_directive_snippets_txt'}</label>
+                    <div class="col-sm-9">
+                        {tmpl_var name='limit_directive_snippets'}
+                    </div>
+                </div>
       </div>
 	</div>
   </div>
diff --git a/interface/web/client/templates/reseller_edit_limits.htm b/interface/web/client/templates/reseller_edit_limits.htm
index 05a22ae..8dc587e 100644
--- a/interface/web/client/templates/reseller_edit_limits.htm
+++ b/interface/web/client/templates/reseller_edit_limits.htm
@@ -140,6 +140,12 @@
                     </div>
                 </div>
                 <div class="form-group">
+                    <label class="col-sm-3 control-label">{tmpl_var name='limit_ssl_letsencrypt_txt'}</label>
+                    <div class="col-sm-9">
+                        {tmpl_var name='limit_ssl_letsencrypt'}
+                    </div>
+                </div>
+                <div class="form-group">
                     <label for="limit_web_aliasdomain" class="col-sm-3 control-label">{tmpl_var name='limit_web_aliasdomain_txt'}</label>
                     <div class="col-sm-9"><input type="text" name="limit_web_aliasdomain" id="limit_web_aliasdomain" value="{tmpl_var name='limit_web_aliasdomain'}" class="form-control" /></div></div>
                 <div class="form-group">
@@ -166,6 +172,12 @@
                         {tmpl_var name='limit_backup'}
                     </div>
                 </div>
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">{tmpl_var name='limit_directive_snippets_txt'}</label>
+                    <div class="col-sm-9">
+                        {tmpl_var name='limit_directive_snippets'}
+                    </div>
+                </div>
       </div>
 	</div>
   </div>
diff --git a/interface/web/sites/form/web_vhost_domain.tform.php b/interface/web/sites/form/web_vhost_domain.tform.php
index 894ea0c..8e40f82 100644
--- a/interface/web/sites/form/web_vhost_domain.tform.php
+++ b/interface/web/sites/form/web_vhost_domain.tform.php
@@ -88,10 +88,11 @@
 $backup_available = ($vhostdomain_type == 'domain');
 if(!$app->auth->is_admin()) {
 	$client_group_id = $_SESSION["s"]["user"]["default_group"];
-	$client = $app->db->queryOneRecord("SELECT limit_wildcard, limit_ssl, limit_backup FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
+	$client = $app->db->queryOneRecord("SELECT limit_wildcard, limit_ssl, limit_ssl_letsencrypt, limit_backup FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ?", $client_group_id);
 
 	if($client['limit_wildcard'] != 'y') $wildcard_available = false;
 	if($client['limit_ssl'] != 'y') $ssl_available = false;
+	if($client['limit_ssl_letsencrypt'] == 'y') $ssl_available = false;
 	if($client['limit_backup'] != 'y') $backup_available = false;
 }
 
diff --git a/interface/web/sites/lib/lang/de_web_vhost_domain.lng b/interface/web/sites/lib/lang/de_web_vhost_domain.lng
index e6bfb44..01820e5 100644
--- a/interface/web/sites/lib/lang/de_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/de_web_vhost_domain.lng
@@ -142,4 +142,5 @@
 $wb['subdomain_error_empty'] = 'The subdommain field is empty or contains invalid characters.';
 $wb['rewrite_to_https_txt'] = 'Rewrite HTTP to HTTPS';
 $wb['password_strength_txt'] = 'Password strength';
+$wb['directive_snippets_id_txt'] = 'Webserver-Konfiguration';
 ?>
diff --git a/interface/web/sites/lib/lang/en_web_vhost_domain.lng b/interface/web/sites/lib/lang/en_web_vhost_domain.lng
index 68cd399..a10b9b6 100644
--- a/interface/web/sites/lib/lang/en_web_vhost_domain.lng
+++ b/interface/web/sites/lib/lang/en_web_vhost_domain.lng
@@ -147,4 +147,5 @@
 $wb['ssl_letsencrypt_txt'] = 'Let\'s Encrypt SSL';
 $wb['rewrite_to_https_txt'] = 'Rewrite HTTP to HTTPS';
 $wb['password_strength_txt'] = 'Password strength';
+$wb['directive_snippets_id_txt'] = 'Web server config';
 ?>
diff --git a/interface/web/sites/templates/web_vhost_domain_edit.htm b/interface/web/sites/templates/web_vhost_domain_edit.htm
index 8ba2825..ca2b7ed 100644
--- a/interface/web/sites/templates/web_vhost_domain_edit.htm
+++ b/interface/web/sites/templates/web_vhost_domain_edit.htm
@@ -210,12 +210,14 @@
                     {tmpl_var name='ssl'}
                 </div>
             </div>
+            <tmpl_if name="limit_ssl_letsencrypt" op="==" value="y">
             <div class="form-group">
                 <label class="col-sm-3 control-label">{tmpl_var name='ssl_letsencrypt_txt'}</label>
                 <div class="col-sm-9">
                     {tmpl_var name='ssl_letsencrypt'}
                 </div>
             </div></tmpl_if>
+            </tmpl_if>
             <div class="form-group">
                 <label for="php" class="col-sm-3 control-label">{tmpl_var name='php_txt'}</label>
                 <div class="col-sm-9"><select name="php" id="php" class="form-control">
@@ -229,12 +231,12 @@
                     {tmpl_var name='fastcgi_php_version'}
                 </select></div>
             </div>
-			<div class="form-group">
+            <tmpl_if name="limit_directive_snippets" op="==" value="y"><div class="form-group">
 				<label for="directive_snippets_id" class="col-sm-3 control-label">{tmpl_var name='directive_snippets_id_txt'}</label>
 				<div class="col-sm-9"><select name="directive_snippets_id" id="directive_snippets_id" class="form-control">
 					{tmpl_var name='directive_snippets_id'}
 				</select></div>
-			</div>
+			</div></tmpl_if>
 			{tmpl_hook name="field_enable_pagespeed"}
 			<div class="form-group nginx pagespeed">
 				<label class="col-sm-3 control-label">{tmpl_var name='enable_pagespeed_txt'}</label>
diff --git a/interface/web/sites/web_vhost_domain_edit.php b/interface/web/sites/web_vhost_domain_edit.php
index 8bbc5e1..87e2a29 100644
--- a/interface/web/sites/web_vhost_domain_edit.php
+++ b/interface/web/sites/web_vhost_domain_edit.php
@@ -139,7 +139,7 @@
 		$app->uses('ini_parser,getconf');
 		$settings = $app->getconf->get_global_config('domains');
 
-		$read_limits = array('limit_cgi', 'limit_ssi', 'limit_perl', 'limit_ruby', 'limit_python', 'force_suexec', 'limit_hterror', 'limit_wildcard', 'limit_ssl');
+		$read_limits = array('limit_cgi', 'limit_ssi', 'limit_perl', 'limit_ruby', 'limit_python', 'force_suexec', 'limit_hterror', 'limit_wildcard', 'limit_ssl', 'limit_ssl_letsencrypt', 'limit_directive_snippets');
 
 		if($this->_vhostdomain_type != 'domain') $parent_domain = $app->db->queryOneRecord("select * FROM web_domain WHERE domain_id = ?", @$this->dataRecord["parent_domain_id"]);
 		
@@ -953,7 +953,7 @@
 			$this->parent_domain_record = $parent_domain;
 		}
 
-		$read_limits = array('limit_cgi', 'limit_ssi', 'limit_perl', 'limit_ruby', 'limit_python', 'force_suexec', 'limit_hterror', 'limit_wildcard', 'limit_ssl');
+		$read_limits = array('limit_cgi', 'limit_ssi', 'limit_perl', 'limit_ruby', 'limit_python', 'force_suexec', 'limit_hterror', 'limit_wildcard', 'limit_ssl', 'limit_ssl_letsencrypt', 'limit_directive_snippets');
 
 		/* check if the domain module is used - and check if the selected domain can be used! */
 		if($app->tform->getCurrentTab() == 'domain') {
@@ -1020,6 +1020,8 @@
 			if($client['limit_hterror'] != 'y') $this->dataRecord['errordocs'] = 'n';
 			if($client['limit_wildcard'] != 'y' && $this->dataRecord['subdomain'] == '*') $this->dataRecord['subdomain'] = 'n';
 			if($client['limit_ssl'] != 'y') $this->dataRecord['ssl'] = 'n';
+			if($client['limit_ssl_letsencrypt'] != 'y') $this->dataRecord['ssl_letsencrypt'] = 'n';
+			if($client['limit_directive_snippets'] != 'y') $this->dataRecord['directive_snippets_id'] = 0
 
 			// only generate quota and traffic warnings if value has changed
 			if($this->id > 0) {

--
Gitblit v1.9.1