From d1cb32b47f23150345fc1de6c54285b49092a847 Mon Sep 17 00:00:00 2001 From: Michael Kaufmann Date: Sun, 24 Sep 2023 17:03:15 +0200 Subject: [PATCH] add formfield for domain-duplication; fix missing check for changed field in Domains.update() to force temporary disabling of ssl-vhost Signed-off-by: Michael Kaufmann --- admin_domains.php | 5 +- lib/Froxlor/Api/Commands/Domains.php | 2 +- .../domains/formfield.domains_duplicate.php | 58 +++++++++++++++++++ 3 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 lib/formfields/admin/domains/formfield.domains_duplicate.php diff --git a/admin_domains.php b/admin_domains.php index 408e64bc..4675e9fa 100644 --- a/admin_domains.php +++ b/admin_domains.php @@ -30,9 +30,9 @@ use Froxlor\Api\Commands\Customers as Customers; use Froxlor\Api\Commands\Domains as Domains; use Froxlor\Bulk\DomainBulkAction; use Froxlor\Cron\TaskId; +use Froxlor\CurrentUser; use Froxlor\Customer\Customer; use Froxlor\Database\Database; -use Froxlor\Domain\Domain; use Froxlor\FileDir; use Froxlor\FroxlorLogger; use Froxlor\Settings; @@ -45,7 +45,6 @@ use Froxlor\UI\Request; use Froxlor\UI\Response; use Froxlor\User; use Froxlor\Validate\Validate; -use Froxlor\CurrentUser; $id = (int)Request::any('id'); @@ -646,7 +645,7 @@ if ($page == 'domains' || $page == 'overview') { Response::redirectTo($filename, [ 'page' => $page, 'searchfield' => 'd.domain_ace', - 'searchtext' => $_POST['domain'] ?? "" + 'searchtext' => Request::post('domain', "") ]); } else { Response::redirectTo($filename, [ diff --git a/lib/Froxlor/Api/Commands/Domains.php b/lib/Froxlor/Api/Commands/Domains.php index e916c072..0647f455 100644 --- a/lib/Froxlor/Api/Commands/Domains.php +++ b/lib/Froxlor/Api/Commands/Domains.php @@ -1553,7 +1553,7 @@ class Domains extends ApiCommand implements ResourceEntity } // Temporarily deactivate ssl_redirect until Let's Encrypt certificate was generated - if ($ssl_redirect > 0 && $letsencrypt == 1 && $result['letsencrypt'] != $letsencrypt) { + if (($result['letsencrypt'] != $letsencrypt || $result['ssl_redirect'] != $ssl_redirect) && $ssl_redirect > 0 && $letsencrypt == 1) { $ssl_redirect = 2; } diff --git a/lib/formfields/admin/domains/formfield.domains_duplicate.php b/lib/formfields/admin/domains/formfield.domains_duplicate.php new file mode 100644 index 00000000..91386847 --- /dev/null +++ b/lib/formfields/admin/domains/formfield.domains_duplicate.php @@ -0,0 +1,58 @@ + + * @license https://files.froxlor.org/misc/COPYING.txt GPLv2 + */ + +return [ + 'domain_duplicate' => [ + 'title' => lng('admin.domain_duplicate'), + 'image' => 'fa-solid fa-globe', + 'self_overview' => ['section' => 'domains', 'page' => 'domains'], + 'id' => 'domain_add', + 'sections' => [ + 'section_a' => [ + 'title' => lng('domains.domainsettings'), + 'image' => 'icons/domain_add.png', + 'fields' => [ + 'domain' => [ + 'label' => 'Domain', + 'type' => 'text', + 'mandatory' => true + ], + 'customerid' => [ + 'label' => lng('admin.customer'), + 'type' => 'select', + 'select_var' => $customers, + 'selected' => $result['customerid'], + 'mandatory' => true + ], + ] + ] + ], + 'buttons' => [ + [ + 'label' => lng('admin.domain_duplicate') + ] + ] + ] +];