start to integrate domain-deactivated flag in UI
Signed-off-by: Michael Kaufmann <d00p@froxlor.org>
This commit is contained in:
@@ -76,7 +76,7 @@ class Domains extends ApiCommand implements ResourceEntity
|
||||
$query_fields = [];
|
||||
$result_stmt = Database::prepare("
|
||||
SELECT
|
||||
`d`.*, `c`.`loginname`, `c`.`deactivated`, `c`.`name`, `c`.`firstname`, `c`.`company`, `c`.`standardsubdomain`, `c`.`adminid` as customeradmin,
|
||||
`d`.*, `c`.`loginname`, `c`.`deactivated` as `customer_deactivated`, `c`.`name`, `c`.`firstname`, `c`.`company`, `c`.`standardsubdomain`, `c`.`adminid` as customeradmin,
|
||||
`ad`.`id` AS `aliasdomainid`, `ad`.`domain` AS `aliasdomain`
|
||||
FROM `" . TABLE_PANEL_DOMAINS . "` `d`
|
||||
LEFT JOIN `" . TABLE_PANEL_CUSTOMERS . "` `c` USING(`customerid`)
|
||||
@@ -1137,6 +1137,8 @@ class Domains extends ApiCommand implements ResourceEntity
|
||||
* (true), requires SSL
|
||||
* @param string $description
|
||||
* optional custom description (currently not used/shown in the frontend), default empty
|
||||
* @param bool $deactivated
|
||||
* optional, if 1 (true) the domain can be deactivated/suspended
|
||||
*
|
||||
* @access admin
|
||||
* @return string json-encoded array
|
||||
@@ -1232,6 +1234,7 @@ class Domains extends ApiCommand implements ResourceEntity
|
||||
$tlsv13_cipher_list = $result['tlsv13_cipher_list'];
|
||||
}
|
||||
$description = $this->getParam('description', true, $result['description']);
|
||||
$deactivated = $this->getBoolParam('deactivated', true, $result['deactivated']);
|
||||
|
||||
// count subdomain usage of source-domain
|
||||
$subdomains_stmt = Database::prepare("
|
||||
@@ -1832,6 +1835,7 @@ class Domains extends ApiCommand implements ResourceEntity
|
||||
$update_data['honorcipherorder'] = $honorcipherorder;
|
||||
$update_data['sessiontickets'] = $sessiontickets;
|
||||
$update_data['description'] = $description;
|
||||
$update_data['deactivated'] = $deactivated;
|
||||
$update_data['id'] = $id;
|
||||
|
||||
$update_stmt = Database::prepare("
|
||||
@@ -1878,11 +1882,17 @@ class Domains extends ApiCommand implements ResourceEntity
|
||||
`ssl_enabled` = :sslenabled,
|
||||
`ssl_honorcipherorder` = :honorcipherorder,
|
||||
`ssl_sessiontickets` = :sessiontickets,
|
||||
`description` = :description
|
||||
`description` = :description,
|
||||
`deactivated` = :deactivated
|
||||
WHERE `id` = :id
|
||||
");
|
||||
Database::pexecute($update_stmt, $update_data, true, true);
|
||||
|
||||
// activate/deactivate domain-based services
|
||||
if ($deactivated != $result['deactivated']) {
|
||||
// @TODO
|
||||
}
|
||||
|
||||
$_update_data['customerid'] = $customerid;
|
||||
$_update_data['adminid'] = $adminid;
|
||||
$_update_data['phpenabled'] = $phpenabled;
|
||||
@@ -1900,6 +1910,7 @@ class Domains extends ApiCommand implements ResourceEntity
|
||||
$_update_data['honorcipherorder'] = $honorcipherorder;
|
||||
$_update_data['sessiontickets'] = $sessiontickets;
|
||||
$_update_data['parentdomainid'] = $id;
|
||||
$_update_data['deactivated'] = $deactivated;
|
||||
|
||||
// if php config is to be set for all subdomains, check here
|
||||
$update_phpconfig = '';
|
||||
@@ -1932,7 +1943,8 @@ class Domains extends ApiCommand implements ResourceEntity
|
||||
`ssl_cipher_list` = :ssl_cipher_list,
|
||||
`tlsv13_cipher_list` = :tlsv13_cipher_list,
|
||||
`ssl_honorcipherorder` = :honorcipherorder,
|
||||
`ssl_sessiontickets` = :sessiontickets
|
||||
`ssl_sessiontickets` = :sessiontickets,
|
||||
`deativated` = :deactivated
|
||||
" . $update_phpconfig . $upd_specialsettings . $updatechildren . $update_sslredirect . "
|
||||
WHERE `parentdomainid` = :parentdomainid
|
||||
");
|
||||
|
||||
@@ -941,7 +941,8 @@ class SubDomains extends ApiCommand implements ResourceEntity
|
||||
'`d`.`parentdomainid`',
|
||||
'`d`.`letsencrypt`',
|
||||
'`d`.`registration_date`',
|
||||
'`d`.`termination_date`'
|
||||
'`d`.`termination_date`',
|
||||
'`d`.`deactivated`'
|
||||
];
|
||||
}
|
||||
$query_fields = [];
|
||||
|
||||
@@ -51,6 +51,9 @@ class Domain
|
||||
public static function domainTarget(array $attributes)
|
||||
{
|
||||
if (empty($attributes['fields']['aliasdomain'])) {
|
||||
if ($attributes['fields']['deactivated']) {
|
||||
return lng('admin.deactivated');
|
||||
}
|
||||
// path or redirect
|
||||
if (preg_match('/^https?\:\/\//', $attributes['fields']['documentroot'])) {
|
||||
return [
|
||||
@@ -80,7 +83,7 @@ class Domain
|
||||
}
|
||||
$result .= '<a href="http://' . $attributes['data'] . '" target="_blank">' . $attributes['data'] . '</a>';
|
||||
// check for statistics if parentdomainid==0 to show stats-link for customers
|
||||
if ((int)UI::getCurrentUser()['adminsession'] == 0 && $attributes['fields']['parentdomainid'] == 0) {
|
||||
if ((int)UI::getCurrentUser()['adminsession'] == 0 && $attributes['fields']['parentdomainid'] == 0 && $attributes['fields']['deactivated'] == 0) {
|
||||
$statsapp = Settings::Get('system.traffictool');
|
||||
$result .= ' <a href="http://' . $attributes['data'] . '/' . $statsapp . '" rel="external" target="_blank" title="' . lng('domains.statstics') . '"><i class="fa-solid fa-chart-line text-secondary"></i></a>';
|
||||
}
|
||||
@@ -95,12 +98,12 @@ class Domain
|
||||
|
||||
public static function canEdit(array $attributes): bool
|
||||
{
|
||||
return (bool)$attributes['fields']['caneditdomain'];
|
||||
return (bool)($attributes['fields']['caneditdomain'] && !$attributes['fields']['deactivated']);
|
||||
}
|
||||
|
||||
public static function canViewLogs(array $attributes): bool
|
||||
{
|
||||
if ((int)$attributes['fields']['email_only'] == 0) {
|
||||
if ((int)$attributes['fields']['email_only'] == 0 && !$attributes['fields']['deactivated']) {
|
||||
if ((int)UI::getCurrentUser()['adminsession'] == 0 && (bool)UI::getCurrentUser()['logviewenabled']) {
|
||||
return true;
|
||||
} elseif ((int)UI::getCurrentUser()['adminsession'] == 1) {
|
||||
@@ -129,7 +132,8 @@ class Domain
|
||||
&& UI::getCurrentUser()['dnsenabled'] == '1'
|
||||
&& $attributes['fields']['caneditdomain'] == '1'
|
||||
&& Settings::Get('system.bind_enable') == '1'
|
||||
&& Settings::Get('system.dnsenabled') == '1';
|
||||
&& Settings::Get('system.dnsenabled') == '1'
|
||||
&& !$attributes['fields']['deactivated'];
|
||||
}
|
||||
|
||||
public static function adminCanEditDNS(array $attributes): bool
|
||||
@@ -152,6 +156,7 @@ class Domain
|
||||
&& (int)$attributes['fields']['caneditdomain'] == 1
|
||||
&& (int)$attributes['fields']['letsencrypt'] == 0
|
||||
&& (int)$attributes['fields']['email_only'] == 0
|
||||
&& !$attributes['fields']['deactivated']
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -63,7 +63,8 @@ class Style
|
||||
$termination_css = 'bg-danger';
|
||||
}
|
||||
}
|
||||
return $attributes['fields']['deactivated'] ? 'bg-info' : $termination_css;
|
||||
$deactivated = $attributes['fields']['deactivated'] || $attributes['fields']['customer_deactivated'];
|
||||
return $deactivated ? 'bg-info' : $termination_css;
|
||||
}
|
||||
|
||||
public static function resultCustomerLockedOrDeactivated(array $attributes): string
|
||||
|
||||
@@ -97,7 +97,13 @@ return [
|
||||
'type' => 'date',
|
||||
'value' => $result['termination_date'],
|
||||
'size' => 10
|
||||
]
|
||||
],
|
||||
'deactivated' => [
|
||||
'label' => lng('admin.deactivated'),
|
||||
'type' => 'checkbox',
|
||||
'value' => '1',
|
||||
'checked' => $result['deactivated']
|
||||
],
|
||||
]
|
||||
],
|
||||
'section_e' => [
|
||||
|
||||
Reference in New Issue
Block a user