diff --git a/lib/Froxlor/Api/Commands/PhpSettings.php b/lib/Froxlor/Api/Commands/PhpSettings.php index 86d9b562..d417b70e 100644 --- a/lib/Froxlor/Api/Commands/PhpSettings.php +++ b/lib/Froxlor/Api/Commands/PhpSettings.php @@ -123,7 +123,7 @@ class PhpSettings extends ApiCommand implements ResourceEntity } // check whether we use that config as froxor-vhost config - if (Settings::Get('system.mod_fcgid_defaultini_ownvhost') == $row['id'] || Settings::Get('phpfpm.vhost_defaultini') == $row['id']) { + if ((Settings::Get('system.mod_fcgid') == '1' && Settings::Get('system.mod_fcgid_defaultini_ownvhost') == $row['id']) || (Settings::Get('phpfpm.enabled') == '1' && Settings::Get('phpfpm.vhost_defaultini') == $row['id'])) { $domains[] = Settings::Get('system.hostname'); } diff --git a/lib/Froxlor/UI/Callbacks/Style.php b/lib/Froxlor/UI/Callbacks/Style.php index a7211e1d..7de6941b 100644 --- a/lib/Froxlor/UI/Callbacks/Style.php +++ b/lib/Froxlor/UI/Callbacks/Style.php @@ -66,6 +66,21 @@ class Style return $attributes['fields']['deactivated'] ? 'bg-info' : $termination_css; } + public static function resultCustomerLockedOrDeactivated(array $attributes): string + { + $row_css = ''; + if ((int)$attributes['fields']['deactivated'] == 1) { + $row_css = 'bg-info'; + } elseif ( + $attributes['fields']['loginfail_count'] >= Settings::Get('login.maxloginattempts') + && $attributes['fields']['lastlogin_fail'] > (time() - Settings::Get('login.deactivatetime')) + ) { + $row_css = 'bg-warning'; + } + + return $row_css; + } + public static function diskspaceWarning(array $attributes): string { return self::getWarningStyle('diskspace', $attributes['fields'], (int)Settings::Get('system.report_webmax')); diff --git a/lib/formfields/admin/customer/formfield.customer_edit.php b/lib/formfields/admin/customer/formfield.customer_edit.php index 9097aef6..172099c3 100644 --- a/lib/formfields/admin/customer/formfield.customer_edit.php +++ b/lib/formfields/admin/customer/formfield.customer_edit.php @@ -195,49 +195,49 @@ return [ 'diskspace' => [ 'label' => lng('customer.diskspace') . ' (' . lng('customer.mib') . ')', 'type' => 'textul', - 'value' => $result['diskspace'], + 'value' => empty($result['diskspace']) ? '0' : $result['diskspace'], 'maxlength' => 16, 'mandatory' => true ], 'traffic' => [ 'label' => lng('customer.traffic') . ' (' . lng('customer.gib') . ')', 'type' => 'textul', - 'value' => $result['traffic'], + 'value' => empty($result['traffic']) ? '0' : $result['traffic'], 'maxlength' => 14, 'mandatory' => true ], 'subdomains' => [ 'label' => lng('customer.subdomains'), 'type' => 'textul', - 'value' => $result['subdomains'], + 'value' => empty($result['subdomains']) ? '0' : $result['subdomains'], 'maxlength' => 9, 'mandatory' => true ], 'emails' => [ 'label' => lng('customer.emails'), 'type' => 'textul', - 'value' => $result['emails'], + 'value' => empty($result['emails']) ? '0' : $result['emails'], 'maxlength' => 9, 'mandatory' => true ], 'email_accounts' => [ 'label' => lng('customer.accounts'), 'type' => 'textul', - 'value' => $result['email_accounts'], + 'value' => empty($result['email_accounts']) ? '0' : $result['email_accounts'], 'maxlength' => 9, 'mandatory' => true ], 'email_forwarders' => [ 'label' => lng('customer.forwarders'), 'type' => 'textul', - 'value' => $result['email_forwarders'], + 'value' => empty($result['email_forwarders']) ? '0' : $result['email_forwarders'], 'maxlength' => 9, 'mandatory' => true ], 'email_quota' => [ 'label' => lng('customer.email_quota') . ' (' . lng('customer.mib') . ')', 'type' => 'textul', - 'value' => $result['email_quota'], + 'value' => empty($result['email_quota']) ? '0' : $result['email_quota'], 'maxlength' => 9, 'visible' => Settings::Get('system.mail_quota_enabled') == '1', 'mandatory' => true @@ -259,13 +259,14 @@ return [ 'ftps' => [ 'label' => lng('customer.ftps'), 'type' => 'textul', - 'value' => $result['ftps'], - 'maxlength' => 9 + 'value' => empty($result['ftps']) ? '0' : $result['ftps'], + 'maxlength' => 9, + 'mandatory' => true ], 'mysqls' => [ 'label' => lng('customer.mysqls'), 'type' => 'textul', - 'value' => $result['mysqls'], + 'value' => empty($result['mysql']) ? '0' : $result['mysqls'], 'maxlength' => 9, 'mandatory' => true ], diff --git a/lib/tablelisting/admin/tablelisting.customers.php b/lib/tablelisting/admin/tablelisting.customers.php index 0e0fe011..c314a67b 100644 --- a/lib/tablelisting/admin/tablelisting.customers.php +++ b/lib/tablelisting/admin/tablelisting.customers.php @@ -27,6 +27,7 @@ use Froxlor\UI\Callbacks\Customer; use Froxlor\UI\Callbacks\Impersonate; use Froxlor\UI\Callbacks\ProgressBar; use Froxlor\UI\Callbacks\Text; +use Froxlor\UI\Callbacks\Style; use Froxlor\UI\Listing; return [ @@ -155,7 +156,7 @@ return [ 'unlock' => [ 'icon' => 'fa fa-unlock', 'title' => lng('panel.unlock'), - 'class' => 'text-warning', + 'class' => 'btn-outline-secondary', 'href' => [ 'section' => 'customers', 'page' => 'customers', @@ -186,5 +187,8 @@ return [ ], ], ], + 'format_callback' => [ + [Style::class, 'resultCustomerLockedOrDeactivated'] + ] ] ];