correct increasing/decreasing of admin-resources
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
@@ -468,43 +468,38 @@ class Customers extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resource
|
||||
$ins_data['customerid'] = $customerid;
|
||||
|
||||
// update admin resource-usage
|
||||
$admin_update_query = "UPDATE `" . TABLE_PANEL_ADMINS . "` SET `customers_used` = `customers_used` + 1";
|
||||
|
||||
if ($mysqls != '-1') {
|
||||
$admin_update_query .= ", `mysqls_used` = `mysqls_used` + 0" . (int) $mysqls;
|
||||
Admins::increaseUsage($this->getUserDetail('adminid'), 'mysqls_used', '', (int) $mysqls);
|
||||
}
|
||||
|
||||
if ($emails != '-1') {
|
||||
$admin_update_query .= ", `emails_used` = `emails_used` + 0" . (int) $emails;
|
||||
Admins::increaseUsage($this->getUserDetail('adminid'), 'emails_used', '', (int) $emails);
|
||||
}
|
||||
|
||||
if ($email_accounts != '-1') {
|
||||
$admin_update_query .= ", `email_accounts_used` = `email_accounts_used` + 0" . (int) $email_accounts;
|
||||
Admins::increaseUsage($this->getUserDetail('adminid'), 'email_accounts_used', '', (int) $email_accounts);
|
||||
}
|
||||
|
||||
if ($email_forwarders != '-1') {
|
||||
$admin_update_query .= ", `email_forwarders_used` = `email_forwarders_used` + 0" . (int) $email_forwarders;
|
||||
Admins::increaseUsage($this->getUserDetail('adminid'), 'email_forwarders_used', '', (int) $email_forwarders);
|
||||
}
|
||||
|
||||
if ($email_quota != '-1') {
|
||||
$admin_update_query .= ", `email_quota_used` = `email_quota_used` + 0" . (int) $email_quota;
|
||||
Admins::increaseUsage($this->getUserDetail('adminid'), 'email_quota_used', '', (int) $email_quota);
|
||||
}
|
||||
|
||||
if ($subdomains != '-1') {
|
||||
$admin_update_query .= ", `subdomains_used` = `subdomains_used` + 0" . (int) $subdomains;
|
||||
Admins::increaseUsage($this->getUserDetail('adminid'), 'subdomains_used', '', (int) $subdomains);
|
||||
}
|
||||
|
||||
if ($ftps != '-1') {
|
||||
$admin_update_query .= ", `ftps_used` = `ftps_used` + 0" . (int) $ftps;
|
||||
Admins::increaseUsage($this->getUserDetail('adminid'), 'ftps_used', '', (int) $ftps);
|
||||
}
|
||||
|
||||
if (($diskspace / 1024) != '-1') {
|
||||
$admin_update_query .= ", `diskspace_used` = `diskspace_used` + 0" . (int) $diskspace;
|
||||
Admins::increaseUsage($this->getUserDetail('adminid'), 'diskspace_used', '', (int) $diskspace);
|
||||
}
|
||||
|
||||
$admin_update_query .= " WHERE `adminid` = '" . (int) $this->getUserDetail('adminid') . "'";
|
||||
Database::query($admin_update_query);
|
||||
|
||||
// update last guid
|
||||
Settings::Set('system.lastguid', $guid, true);
|
||||
|
||||
@@ -1499,44 +1494,41 @@ class Customers extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resource
|
||||
), true, true);
|
||||
|
||||
// update admin-resource-usage
|
||||
$admin_update_query = "UPDATE `" . TABLE_PANEL_ADMINS . "` SET `customers_used` = `customers_used` - 1 ";
|
||||
$admin_update_query .= ", `domains_used` = `domains_used` - 0" . (int) ($domains_deleted - $result['subdomains_used']);
|
||||
Admins::decreaseUsage($this->getUserDetail('adminid'), 'customers_used');
|
||||
Admins::decreaseUsage($this->getUserDetail('adminid'), 'domains_used', '', (int) ($domains_deleted - $result['subdomains_used']));
|
||||
|
||||
if ($result['mysqls'] != '-1') {
|
||||
$admin_update_query .= ", `mysqls_used` = `mysqls_used` - 0" . (int) $result['mysqls'];
|
||||
Admins::decreaseUsage($this->getUserDetail('adminid'), 'mysqls_used', '', (int) $result['mysqls']);
|
||||
}
|
||||
|
||||
if ($result['emails'] != '-1') {
|
||||
$admin_update_query .= ", `emails_used` = `emails_used` - 0" . (int) $result['emails'];
|
||||
Admins::decreaseUsage($this->getUserDetail('adminid'), 'emails_used', '', (int) $result['emails']);
|
||||
}
|
||||
|
||||
if ($result['email_accounts'] != '-1') {
|
||||
$admin_update_query .= ", `email_accounts_used` = `email_accounts_used` - 0" . (int) $result['email_accounts'];
|
||||
Admins::decreaseUsage($this->getUserDetail('adminid'), 'email_accounts_used', '', (int) $result['email_accounts']);
|
||||
}
|
||||
|
||||
if ($result['email_forwarders'] != '-1') {
|
||||
$admin_update_query .= ", `email_forwarders_used` = `email_forwarders_used` - 0" . (int) $result['email_forwarders'];
|
||||
Admins::decreaseUsage($this->getUserDetail('adminid'), 'email_forwarders_used', '', (int) $result['email_forwarders']);
|
||||
}
|
||||
|
||||
if ($result['email_quota'] != '-1') {
|
||||
$admin_update_query .= ", `email_quota_used` = `email_quota_used` - 0" . (int) $result['email_quota'];
|
||||
Admins::decreaseUsage($this->getUserDetail('adminid'), 'email_quota_used', '', (int) $result['email_quota']);
|
||||
}
|
||||
|
||||
if ($result['subdomains'] != '-1') {
|
||||
$admin_update_query .= ", `subdomains_used` = `subdomains_used` - 0" . (int) $result['subdomains'];
|
||||
Admins::decreaseUsage($this->getUserDetail('adminid'), 'subdomains_used', '', (int) $result['subdomains']);
|
||||
}
|
||||
|
||||
if ($result['ftps'] != '-1') {
|
||||
$admin_update_query .= ", `ftps_used` = `ftps_used` - 0" . (int) $result['ftps'];
|
||||
Admins::decreaseUsage($this->getUserDetail('adminid'), 'ftps_used', '', (int) $result['ftps']);
|
||||
}
|
||||
|
||||
if (($result['diskspace'] / 1024) != '-1') {
|
||||
$admin_update_query .= ", `diskspace_used` = `diskspace_used` - 0" . (int) $result['diskspace'];
|
||||
Admins::decreaseUsage($this->getUserDetail('adminid'), 'diskspace_used', '', (int) $result['diskspace']);
|
||||
}
|
||||
|
||||
$admin_update_query .= " WHERE `adminid` = '" . (int) $result['adminid'] . "'";
|
||||
Database::query($admin_update_query);
|
||||
|
||||
// rebuild configs
|
||||
\Froxlor\System\Cronjob::inserttask('1');
|
||||
|
||||
|
||||
@@ -187,10 +187,6 @@ class EmailAccounts extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Reso
|
||||
Customers::increaseUsage($customer['customerid'], 'email_accounts_used');
|
||||
Customers::increaseUsage($customer['customerid'], 'email_quota_used', '', $quota);
|
||||
|
||||
// update admin usage
|
||||
Admins::increaseUsage($customer['adminid'], 'email_accounts_used');
|
||||
Admins::increaseUsage($customer['adminid'], 'email_quota_used', '', $quota);
|
||||
|
||||
if ($sendinfomail) {
|
||||
// replacer array for mail to create account on server
|
||||
$replace_arr = array(
|
||||
@@ -480,9 +476,6 @@ class EmailAccounts extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Reso
|
||||
// decrease usage for customer
|
||||
Customers::decreaseUsage($customer['customerid'], 'email_accounts_used');
|
||||
Customers::decreaseUsage($customer['customerid'], 'email_quota_used', '', $quota);
|
||||
// decrease admin usage
|
||||
Admins::decreaseUsage($customer['adminid'], 'email_accounts_used');
|
||||
Admins::decreaseUsage($customer['adminid'], 'email_quota_used', '', $quota);
|
||||
|
||||
$this->logger()->logAction($this->isAdmin() ? \Froxlor\FroxlorLogger::ADM_ACTION : \Froxlor\FroxlorLogger::USR_ACTION, LOG_INFO, "[API] deleted email account for '" . $result['email_full'] . "'");
|
||||
return $this->response(200, "successfull", $result);
|
||||
|
||||
@@ -97,9 +97,6 @@ class EmailForwarders extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Re
|
||||
// update customer usage
|
||||
Customers::increaseUsage($customer['customerid'], 'email_forwarders_used');
|
||||
|
||||
// update admin usage
|
||||
Admins::increaseUsage($customer['adminid'], 'email_forwarders_used');
|
||||
|
||||
$this->logger()->logAction($this->isAdmin() ? \Froxlor\FroxlorLogger::ADM_ACTION : \Froxlor\FroxlorLogger::USR_ACTION, LOG_INFO, "[API] added email forwarder for '" . $result['email_full'] . "'");
|
||||
|
||||
$result = $this->apiCall('Emails.get', array(
|
||||
@@ -199,9 +196,6 @@ class EmailForwarders extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Re
|
||||
// update customer usage
|
||||
Customers::decreaseUsage($customer['customerid'], 'email_forwarders_used');
|
||||
|
||||
// update admin usage
|
||||
Admins::decreaseUsage($customer['adminid'], 'email_forwarders_used');
|
||||
|
||||
$this->logger()->logAction($this->isAdmin() ? \Froxlor\FroxlorLogger::ADM_ACTION : \Froxlor\FroxlorLogger::USR_ACTION, LOG_INFO, "[API] deleted email forwarder for '" . $result['email_full'] . "'");
|
||||
|
||||
$result = $this->apiCall('Emails.get', array(
|
||||
|
||||
@@ -132,9 +132,6 @@ class Emails extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEnt
|
||||
// update customer usage
|
||||
Customers::increaseUsage($customer['customerid'], 'emails_used');
|
||||
|
||||
// update admin usage
|
||||
Admins::increaseUsage($customer['adminid'], 'emails_used');
|
||||
|
||||
$this->logger()->logAction($this->isAdmin() ? \Froxlor\FroxlorLogger::ADM_ACTION : \Froxlor\FroxlorLogger::USR_ACTION, LOG_INFO, "[API] added email address '" . $email_full . "'");
|
||||
|
||||
$result = $this->apiCall('Emails.get', array(
|
||||
@@ -381,7 +378,6 @@ class Emails extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEnt
|
||||
"id" => $id
|
||||
), true, true);
|
||||
Customers::decreaseUsage($customer['customerid'], 'emails_used');
|
||||
Admins::decreaseUsage($customer['customerid'], 'emails_used');
|
||||
|
||||
$this->logger()->logAction($this->isAdmin() ? \Froxlor\FroxlorLogger::ADM_ACTION : \Froxlor\FroxlorLogger::USR_ACTION, LOG_INFO, "[API] deleted email address '" . $result['email_full'] . "'");
|
||||
return $this->response(200, "successfull", $result);
|
||||
|
||||
@@ -179,8 +179,6 @@ class Ftps extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEntit
|
||||
Customers::increaseUsage($customer['customerid'], 'ftps_used');
|
||||
Customers::increaseUsage($customer['customerid'], 'ftp_lastaccountnumber');
|
||||
|
||||
// update admin usage
|
||||
Admins::increaseUsage($customer['adminid'], 'ftps_used');
|
||||
|
||||
$this->logger()->logAction($this->isAdmin() ? \Froxlor\FroxlorLogger::ADM_ACTION : \Froxlor\FroxlorLogger::USR_ACTION, LOG_INFO, "[API] added ftp-account '" . $username . " (" . $path . ")'");
|
||||
\Froxlor\System\Cronjob::inserttask(5);
|
||||
@@ -545,8 +543,6 @@ class Ftps extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEntit
|
||||
// decrease ftp-user usage for customer
|
||||
$resetaccnumber = ($customer_data['ftps_used'] == '1') ? " , `ftp_lastaccountnumber`='0'" : '';
|
||||
Customers::decreaseUsage($customer_data['customerid'], 'ftps_used', $resetaccnumber);
|
||||
// update admin usage
|
||||
Admins::decreaseUsage(($this->isAdmin() ? $customer_data['adminid'] : $this->getUserDetail('adminid')), 'ftps_used');
|
||||
|
||||
$this->logger()->logAction($this->isAdmin() ? \Froxlor\FroxlorLogger::ADM_ACTION : \Froxlor\FroxlorLogger::USR_ACTION, LOG_WARNING, "[API] deleted ftp-user '" . $result['username'] . "'");
|
||||
return $this->response(200, "successfull", $result);
|
||||
|
||||
@@ -110,9 +110,6 @@ class Mysqls extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEnt
|
||||
Customers::increaseUsage($customer['customerid'], 'mysqls_used');
|
||||
Customers::increaseUsage($customer['customerid'], 'mysql_lastaccountnumber');
|
||||
|
||||
// update admin usage
|
||||
Admins::increaseUsage($this->getUserDetail('adminid'), 'mysqls_used');
|
||||
|
||||
// send info-mail?
|
||||
if ($sendinfomail == 1) {
|
||||
$pma = $this->lng['admin']['notgiven'];
|
||||
@@ -476,8 +473,6 @@ class Mysqls extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\ResourceEnt
|
||||
// reduce mysql-usage-counter
|
||||
$resetaccnumber = ($mysql_used == '1') ? " , `mysql_lastaccountnumber` = '0' " : '';
|
||||
Customers::decreaseUsage($customer['customerid'], 'mysqls_used', $resetaccnumber);
|
||||
// update admin usage
|
||||
Admins::decreaseUsage(($this->isAdmin() ? $customer['adminid'] : $this->getUserDetail('adminid')), 'mysqls_used');
|
||||
|
||||
$this->logger()->logAction($this->isAdmin() ? \Froxlor\FroxlorLogger::ADM_ACTION : \Froxlor\FroxlorLogger::USR_ACTION, LOG_WARNING, "[API] deleted database '" . $result['databasename'] . "'");
|
||||
return $this->response(200, "successfull", $result);
|
||||
|
||||
@@ -310,7 +310,6 @@ class SubDomains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc
|
||||
\Froxlor\System\Cronjob::inserttask('4');
|
||||
|
||||
Customers::increaseUsage($customer['customerid'], 'subdomains_used');
|
||||
Admins::increaseUsage(($this->isAdmin() ? $customer['adminid'] : $this->getUserDetail('adminid')), 'subdomains_used');
|
||||
|
||||
$this->logger()->logAction($this->isAdmin() ? \Froxlor\FroxlorLogger::ADM_ACTION : \Froxlor\FroxlorLogger::USR_ACTION, LOG_INFO, "[API] added subdomain '" . $completedomain . "'");
|
||||
|
||||
@@ -832,8 +831,6 @@ class SubDomains extends \Froxlor\Api\ApiCommand implements \Froxlor\Api\Resourc
|
||||
|
||||
// reduce subdomain-usage-counter
|
||||
Customers::decreaseUsage($customer['customerid'], 'subdomains_used');
|
||||
// update admin usage
|
||||
Admins::decreaseUsage(($this->isAdmin() ? $customer['adminid'] : $this->getUserDetail('adminid')), 'subdomains_used');
|
||||
|
||||
$this->logger()->logAction($this->isAdmin() ? \Froxlor\FroxlorLogger::ADM_ACTION : \Froxlor\FroxlorLogger::USR_ACTION, LOG_WARNING, "[API] deleted subdomain '" . $result['domain'] . "'");
|
||||
return $this->response(200, "successfull", $result);
|
||||
|
||||
@@ -212,16 +212,18 @@ class User
|
||||
Database::pexecute($admins_stmt, array());
|
||||
|
||||
while ($admin = $admins_stmt->fetch(\PDO::FETCH_ASSOC)) {
|
||||
$admin_customers_stmt = Database::prepare('SELECT COUNT(*) AS `number_customers` FROM `' . TABLE_PANEL_CUSTOMERS . '` WHERE `adminid` = :aid');
|
||||
$admin_customers = Database::pexecute_first($admin_customers_stmt, array(
|
||||
$admin_customers_stmt = Database::prepare('SELECT * FROM `' . TABLE_PANEL_CUSTOMERS . '` WHERE `adminid` = :aid');
|
||||
Database::pexecute($admin_customers_stmt, array(
|
||||
"aid" => $admin['adminid']
|
||||
));
|
||||
$admin['customers_used_new'] = $admin_customers['number_customers'];
|
||||
$admin_customers = $admin_customers_stmt->fetchAll(\PDO::FETCH_ASSOC);
|
||||
$admin['customers_used_new'] = count($admin_customers);
|
||||
|
||||
$admin_domains_stmt = Database::prepare('SELECT COUNT(*) AS `number_domains` FROM `' . TABLE_PANEL_DOMAINS . '` WHERE `adminid` = :aid AND `isemaildomain` = "1"');
|
||||
$admin_domains_stmt = Database::prepare('SELECT COUNT(*) AS `number_domains` FROM `' . TABLE_PANEL_DOMAINS . '` WHERE `adminid` = :aid');
|
||||
$admin_domains = Database::pexecute_first($admin_domains_stmt, array(
|
||||
"aid" => $admin['adminid']
|
||||
));
|
||||
// substract the amount of domains that are std-subdomains later when we iterated through all customers and now for sure
|
||||
$admin['domains_used_new'] = $admin_domains['number_domains'];
|
||||
|
||||
$cur_adm = $admin['adminid'];
|
||||
@@ -245,6 +247,27 @@ class User
|
||||
$admin[$field . '_new'] = $admin_resources[$cur_adm][$field];
|
||||
}
|
||||
|
||||
foreach ($admin_customers as $acustomer) {
|
||||
foreach (array(
|
||||
'diskspace_used',
|
||||
'traffic_used',
|
||||
'mysqls_used',
|
||||
'ftps_used',
|
||||
'emails_used',
|
||||
'email_accounts_used',
|
||||
'email_forwarders_used',
|
||||
'email_quota_used',
|
||||
'subdomains_used'
|
||||
) as $field) {
|
||||
$admin[$field . '_new'] += $acustomer[$field];
|
||||
}
|
||||
// check for std-subdomain
|
||||
if ($acustomer['standardsubdomain'] > 0) {
|
||||
// std-subdomain does not count to assign resource
|
||||
$admin['domains_used_new']--;
|
||||
}
|
||||
}
|
||||
|
||||
$stmt = Database::prepare('UPDATE `' . TABLE_PANEL_ADMINS . '`
|
||||
SET `customers_used` = :customers_used,
|
||||
`domains_used` = :domains_used,
|
||||
|
||||
Reference in New Issue
Block a user