diff --git a/install/updates/froxlor/update_2.1.inc.php b/install/updates/froxlor/update_2.1.inc.php
index 4ffa9bcb..e6fff65d 100644
--- a/install/updates/froxlor/update_2.1.inc.php
+++ b/install/updates/froxlor/update_2.1.inc.php
@@ -132,7 +132,7 @@ if (Froxlor::isDatabaseVersion('202304260')) {
Update::lastStepStatus(0);
Update::showUpdateStep("Adjusting system for data-export function");
- Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "`SET `varname` = 'exportenabled' WHERE `settinggroup`= 'system' AND `varname`= 'backupenabled");
+ Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "`SET `varname` = 'exportenabled' WHERE `settinggroup`= 'system' AND `varname`= 'backupenabled'");
Database::query("UPDATE `" . TABLE_PANEL_SETTINGS . "`SET `value` = REPLACE(`value`, 'extras.backup', 'extras.export') WHERE `settinggroup` = 'panel' AND `varname` = 'customer_hide_options'");
Database::query("DELETE FROM `" . TABLE_PANEL_USERCOLUMNS . "` WHERE `section` = 'backup_list'");
Database::query("DELETE FROM `" . TABLE_PANEL_TASKS . "` WHERE `type` = '20'");
diff --git a/lib/Froxlor/Cron/Http/Nginx.php b/lib/Froxlor/Cron/Http/Nginx.php
index 55b02a96..b9a345f2 100644
--- a/lib/Froxlor/Cron/Http/Nginx.php
+++ b/lib/Froxlor/Cron/Http/Nginx.php
@@ -863,13 +863,7 @@ class Nginx extends HttpConfigBase
// remove comments
$vhost = implode("\n", preg_replace('/^(\s+)?#(.*)$/', '', explode("\n", $vhost)));
// Break blocks into lines
- $vhost = str_replace([
- "{",
- "}"
- ], [
- " {\n",
- "\n}"
- ], $vhost);
+ $vhost = preg_replace("/^(\s+)?location(.+)\{(.+)\}$/misU", "location $2 {\n $3 \n}", $vhost);
// Break into array items
$vhost = explode("\n", preg_replace('/[ \t]+/', ' ', trim(preg_replace('/\t+/', '', $vhost))));
// Remove empty lines
diff --git a/lib/Froxlor/UI/Callbacks/SSLCertificate.php b/lib/Froxlor/UI/Callbacks/SSLCertificate.php
index 444bc34f..2b4be3c6 100644
--- a/lib/Froxlor/UI/Callbacks/SSLCertificate.php
+++ b/lib/Froxlor/UI/Callbacks/SSLCertificate.php
@@ -47,4 +47,9 @@ class SSLCertificate
}
return false;
}
+
+ public static function isNotLetsEncrypt(array $attributes): bool
+ {
+ return (int)$attributes['fields']['letsencrypt'] == 0;
+ }
}
diff --git a/lib/tablelisting/tablelisting.sslcertificates.php b/lib/tablelisting/tablelisting.sslcertificates.php
index d243f333..d5cf1255 100644
--- a/lib/tablelisting/tablelisting.sslcertificates.php
+++ b/lib/tablelisting/tablelisting.sslcertificates.php
@@ -89,6 +89,9 @@ return [
'action' => 'delete',
'id' => ':id'
],
+ // Let's Encrypt certificates can be removed 'correctly'
+ // by disabling let's encrypt for the domain
+ 'visible' => [SSLCertificate::class, 'isNotLetsEncrypt']
],
]
]
diff --git a/lng/en.lng.php b/lng/en.lng.php
index 38224a84..15ef2d92 100644
--- a/lng/en.lng.php
+++ b/lng/en.lng.php
@@ -2210,7 +2210,7 @@ Yours sincerely, your administrator',
'toolselect' => 'Traffic analyzer',
'webalizer' => 'Webalizer',
'awstats' => 'AWStats',
- 'goaccess' => 'goacccess'
+ 'goaccess' => 'goaccess'
],
'requires_reconfiguration' => 'Changing this settings might require a reconfiguration of the following services:
%s',
'req_limit_per_interval' => [
diff --git a/lng/es.lng.php b/lng/es.lng.php
index ab50024e..eb464ccd 100644
--- a/lng/es.lng.php
+++ b/lng/es.lng.php
@@ -2176,7 +2176,7 @@ Atentamente, su administrador'
'toolselect' => 'Analizador de tráfico',
'webalizer' => 'Webalizer',
'awstats' => 'AWStats',
- 'goaccess' => 'goacccess'
+ 'goaccess' => 'goaccess'
],
'requires_reconfiguration' => 'El cambio de esta configuración podría requerir una reconfiguración de los siguientes servicios:
%s'
],