fix reduction of used resources when deleting a customer

Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann
2022-11-13 18:04:29 +01:00
parent 6904acc9ea
commit 5fa98811ab
2 changed files with 24 additions and 13 deletions

View File

@@ -1732,39 +1732,39 @@ class Customers extends ApiCommand implements ResourceEntity
], true, true); ], true, true);
// update admin-resource-usage // update admin-resource-usage
Admins::decreaseUsage($this->getUserDetail('adminid'), 'customers_used'); Admins::decreaseUsage($result['adminid'], 'customers_used');
Admins::decreaseUsage($this->getUserDetail('adminid'), 'domains_used', '', (int)($domains_deleted - $result['subdomains_used'])); Admins::decreaseUsage($result['adminid'], 'domains_used', '', (int)($domains_deleted - $result['subdomains_used']));
if ($result['mysqls'] != '-1') { if ($result['mysqls'] != '-1') {
Admins::decreaseUsage($this->getUserDetail('adminid'), 'mysqls_used', '', (int)$result['mysqls']); Admins::decreaseUsage($result['adminid'], 'mysqls_used', '', (int)$result['mysqls']);
} }
if ($result['emails'] != '-1') { if ($result['emails'] != '-1') {
Admins::decreaseUsage($this->getUserDetail('adminid'), 'emails_used', '', (int)$result['emails']); Admins::decreaseUsage($result['adminid'], 'emails_used', '', (int)$result['emails']);
} }
if ($result['email_accounts'] != '-1') { if ($result['email_accounts'] != '-1') {
Admins::decreaseUsage($this->getUserDetail('adminid'), 'email_accounts_used', '', (int)$result['email_accounts']); Admins::decreaseUsage($result['adminid'], 'email_accounts_used', '', (int)$result['email_accounts']);
} }
if ($result['email_forwarders'] != '-1') { if ($result['email_forwarders'] != '-1') {
Admins::decreaseUsage($this->getUserDetail('adminid'), 'email_forwarders_used', '', (int)$result['email_forwarders']); Admins::decreaseUsage($result['adminid'], 'email_forwarders_used', '', (int)$result['email_forwarders']);
} }
if ($result['email_quota'] != '-1') { if ($result['email_quota'] != '-1') {
Admins::decreaseUsage($this->getUserDetail('adminid'), 'email_quota_used', '', (int)$result['email_quota']); Admins::decreaseUsage($result['adminid'], 'email_quota_used', '', (int)$result['email_quota']);
} }
if ($result['subdomains'] != '-1') { if ($result['subdomains'] != '-1') {
Admins::decreaseUsage($this->getUserDetail('adminid'), 'subdomains_used', '', (int)$result['subdomains']); Admins::decreaseUsage($result['adminid'], 'subdomains_used', '', (int)$result['subdomains']);
} }
if ($result['ftps'] != '-1') { if ($result['ftps'] != '-1') {
Admins::decreaseUsage($this->getUserDetail('adminid'), 'ftps_used', '', (int)$result['ftps']); Admins::decreaseUsage($result['adminid'], 'ftps_used', '', (int)$result['ftps']);
} }
if (($result['diskspace'] / 1024) != '-1') { if (($result['diskspace'] / 1024) != '-1') {
Admins::decreaseUsage($this->getUserDetail('adminid'), 'diskspace_used', '', (int)$result['diskspace']); Admins::decreaseUsage($result['adminid'], 'diskspace_used', '', (int)$result['diskspace']);
} }
// rebuild configs // rebuild configs

View File

@@ -25,9 +25,11 @@
namespace Froxlor\UI\Callbacks; namespace Froxlor\UI\Callbacks;
use Exception;
use Froxlor\Traffic\Traffic; use Froxlor\Traffic\Traffic;
use Froxlor\PhpHelper; use Froxlor\PhpHelper;
use Froxlor\Settings; use Froxlor\Settings;
use Froxlor\UI\Response;
class ProgressBar class ProgressBar
{ {
@@ -90,9 +92,18 @@ class ProgressBar
*/ */
public static function traffic(array $attributes): array public static function traffic(array $attributes): array
{ {
$result = Traffic::getCustomerStats($attributes['fields'], 'currentmonth'); $skip_customer_traffic = false;
try {
$result = Traffic::getCustomerStats($attributes['fields'], 'currentmonth');
} catch (Exception $e) {
if ($e->getCode() === 405) {
$skip_customer_traffic = true;
} else {
Response::dynamicError($e->getMessage());
}
}
$infotext = null; $infotext = null;
if (isset($result['metrics']['http'])) { if (isset($result['metrics']['http']) && !$skip_customer_traffic) {
$infotext = lng('panel.used') . ':' . PHP_EOL; $infotext = lng('panel.used') . ':' . PHP_EOL;
$infotext .= 'http: ' . PhpHelper::sizeReadable($result['metrics']['http'], null, 'bi') . PHP_EOL; $infotext .= 'http: ' . PhpHelper::sizeReadable($result['metrics']['http'], null, 'bi') . PHP_EOL;
$infotext .= 'ftp: ' . PhpHelper::sizeReadable($result['metrics']['ftp'], null, 'bi') . PHP_EOL; $infotext .= 'ftp: ' . PhpHelper::sizeReadable($result['metrics']['ftp'], null, 'bi') . PHP_EOL;