Allow editing/viewing of standard subdomain for customer, fixes #1121

Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
Michael Kaufmann
2023-05-26 12:53:27 +02:00
parent 6202e24b77
commit 84599011cf

View File

@@ -865,7 +865,7 @@ class SubDomains extends ApiCommand implements ResourceEntity
} }
/** /**
* lists all subdomain entries * lists all customer domain/subdomain entries
* *
* @param bool $with_ips * @param bool $with_ips
* optional, default true * optional, default true
@@ -910,17 +910,12 @@ class SubDomains extends ApiCommand implements ResourceEntity
$custom_list_result = $_custom_list_result['list']; $custom_list_result = $_custom_list_result['list'];
} }
$customer_ids = []; $customer_ids = [];
$customer_stdsubs = [];
foreach ($custom_list_result as $customer) { foreach ($custom_list_result as $customer) {
$customer_ids[] = $customer['customerid']; $customer_ids[] = $customer['customerid'];
$customer_stdsubs[$customer['customerid']] = $customer['standardsubdomain'];
} }
if (empty($customer_ids)) { if (empty($customer_ids)) {
throw new Exception("Required resource unsatisfied.", 405); throw new Exception("Required resource unsatisfied.", 405);
} }
if (empty($customer_stdsubs)) {
throw new Exception("Required resource unsatisfied.", 405);
}
$select_fields = [ $select_fields = [
'`d`.*' '`d`.*'
@@ -932,9 +927,6 @@ class SubDomains extends ApiCommand implements ResourceEntity
$customer_ids = [ $customer_ids = [
$this->getUserDetail('customerid') $this->getUserDetail('customerid')
]; ];
$customer_stdsubs = [
$this->getUserDetail('customerid') => $this->getUserDetail('standardsubdomain')
];
$select_fields = [ $select_fields = [
'`d`.`id`', '`d`.`id`',
@@ -963,7 +955,7 @@ class SubDomains extends ApiCommand implements ResourceEntity
LEFT JOIN `" . TABLE_PANEL_DOMAINS . "` `pd` ON `pd`.`id`=`d`.`parentdomainid` LEFT JOIN `" . TABLE_PANEL_DOMAINS . "` `pd` ON `pd`.`id`=`d`.`parentdomainid`
WHERE `d`.`customerid` IN (" . implode(', ', $customer_ids) . ") WHERE `d`.`customerid` IN (" . implode(', ', $customer_ids) . ")
AND `d`.`email_only` = '0' AND `d`.`email_only` = '0'
AND `d`.`id` NOT IN (" . implode(', ', $customer_stdsubs) . ")" . $this->getSearchWhere($query_fields, true) . " GROUP BY `d`.`id` ORDER BY `parentdomainname` ASC, `d`.`parentdomainid` ASC " . $this->getOrderBy(true) . $this->getLimit()); " . $this->getSearchWhere($query_fields, true) . " GROUP BY `d`.`id` ORDER BY `parentdomainname` ASC, `d`.`parentdomainid` ASC " . $this->getOrderBy(true) . $this->getLimit());
$result = []; $result = [];
Database::pexecute($domains_stmt, $query_fields, true, true); Database::pexecute($domains_stmt, $query_fields, true, true);