add safety when unsetting isemaildomain flag in domain, fixes #1305
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
@@ -1063,6 +1063,9 @@ class Domains extends ApiCommand implements ResourceEntity
|
||||
* (default yes), 3 = always, default 0 (never)
|
||||
* @param bool $isemaildomain
|
||||
* optional, allow email usage with this domain, default 0 (false)
|
||||
* @param bool $emaildomainverified
|
||||
* optional, when setting $isemaildomain to false, this needs to be set to true to confirm the action in case email addresses exist for this domain,
|
||||
* default 0 (false)
|
||||
* @param bool $email_only
|
||||
* optional, restrict domain to email usage, default 0 (false)
|
||||
* @param int $selectserveralias
|
||||
@@ -1190,6 +1193,7 @@ class Domains extends ApiCommand implements ResourceEntity
|
||||
|
||||
$subcanemaildomain = $this->getParam('subcanemaildomain', true, $result['subcanemaildomain']);
|
||||
$isemaildomain = $this->getBoolParam('isemaildomain', true, $result['isemaildomain']);
|
||||
$emaildomainverified = $this->getBoolParam('emaildomainverified', true, 0);
|
||||
$email_only = $this->getBoolParam('email_only', true, $result['email_only']);
|
||||
$p_serveraliasoption = $this->getParam('selectserveralias', true, -1);
|
||||
$speciallogfile = $this->getBoolParam('speciallogfile', true, $result['speciallogfile']);
|
||||
@@ -1273,7 +1277,7 @@ class Domains extends ApiCommand implements ResourceEntity
|
||||
|
||||
// count where we are used in email-accounts
|
||||
$domain_emails_result_stmt = Database::prepare("
|
||||
SELECT `email`, `email_full`, `destination`, `popaccountid` AS `number_email_forwarders`
|
||||
SELECT `email`, `email_full`, `destination`, `popaccountid`
|
||||
FROM `" . TABLE_MAIL_VIRTUAL . "` WHERE `customerid` = :customerid AND `domainid` = :id
|
||||
");
|
||||
Database::pexecute($domain_emails_result_stmt, [
|
||||
@@ -1296,6 +1300,10 @@ class Domains extends ApiCommand implements ResourceEntity
|
||||
}
|
||||
}
|
||||
|
||||
if ($emails > 0 && (int)$isemaildomain == 0 && (int)$result['isemaildomain'] == 1 && (int)$emaildomainverified == 0) {
|
||||
Response::standardError('emaildomainstillhasaddresses', '', true);
|
||||
}
|
||||
|
||||
// handle change of customer (move domain from customer to customer)
|
||||
if ($customerid > 0 && $customerid != $result['customerid'] && Settings::Get('panel.allow_domain_change_customer') == '1') {
|
||||
// check whether target customer has enough resources
|
||||
|
||||
@@ -152,7 +152,7 @@ class User
|
||||
]);
|
||||
$customer['emails_used_new'] = (int)$customer_emails['number_emails'];
|
||||
|
||||
$customer_emails_result_stmt = Database::prepare('SELECT `email`, `email_full`, `destination`, `popaccountid` AS `number_email_forwarders` FROM `' . TABLE_MAIL_VIRTUAL . '`
|
||||
$customer_emails_result_stmt = Database::prepare('SELECT `email`, `email_full`, `destination`, `popaccountid` FROM `' . TABLE_MAIL_VIRTUAL . '`
|
||||
WHERE `customerid` = :cid');
|
||||
Database::pexecute($customer_emails_result_stmt, [
|
||||
"cid" => $customer['customerid']
|
||||
|
||||
@@ -213,6 +213,10 @@ return [
|
||||
'type' => 'hidden',
|
||||
'value' => '0'
|
||||
],
|
||||
'emaildomainverified' => [
|
||||
'type' => 'hidden',
|
||||
'value' => '0'
|
||||
],
|
||||
]
|
||||
],
|
||||
'section_bssl' => [
|
||||
|
||||
Reference in New Issue
Block a user