<?php declare(strict_types = 0);
class CControllerServiceListRefresh extends CControllerServiceListGeneral {
protected function init(): void {
$this->disableSIDValidation();
}
protected function checkInput(): bool {
$fields = [
'serviceid' => 'db services.serviceid',
'path' => 'array',
'filter_name' => 'string',
'filter_status' => 'in '.implode(',', [SERVICE_STATUS_ANY, SERVICE_STATUS_OK, SERVICE_STATUS_PROBLEM]),
'filter_evaltype' => 'in '.TAG_EVAL_TYPE_AND_OR.','.TAG_EVAL_TYPE_OR,
'filter_tags' => 'array',
'filter_set' => 'in 1',
'page' => 'ge 1'
];
$ret = $this->validateInput($fields);
if (!$ret) {
$this->setResponse(
(new CControllerResponseData([
'main_block' => json_encode(['errors' => getMessages()->toString()])
]))->disableView()
);
}
return $ret;
}
protected function checkPermissions(): bool {
if (!$this->checkAccess(CRoleHelper::UI_SERVICES_SERVICES)) {
return false;
}
return parent::checkPermissions();
}
protected function doAction(): void {
parent::doAction();
$path = $this->getPath();
$filter = [
'serviceid' => $this->service !== null ? $this->service['serviceid'] : self::WITHOUT_PARENTS_SERVICEID,
'name' => $this->getInput('filter_name', self::FILTER_DEFAULT_NAME),
'status' => $this->getInput('filter_status', self::FILTER_DEFAULT_STATUS),
'without_children' => self::FILTER_DEFAULT_WITHOUT_CHILDREN,
'without_problem_tags' => self::FILTER_DEFAULT_WITHOUT_PROBLEM_TAGS,
'tag_source' => self::FILTER_DEFAULT_TAG_SOURCE,
'evaltype' => $this->getInput('filter_evaltype', self::FILTER_DEFAULT_EVALTYPE),
'tags' => [],
'filter_set' => $this->hasInput('filter_set')
];
foreach ($this->getInput('filter_tags', []) as $tag) {
if (!array_key_exists('tag', $tag) || !array_key_exists('value', $tag)
|| ($tag['tag'] === '' && $tag['value'] === '')) {
continue;
}
$filter['tags'][] = $tag;
}
$data = [
'can_monitor_problems' => CWebUser::checkAccess(CRoleHelper::UI_MONITORING_PROBLEMS),
'path' => $path,
'is_filtered' => $filter['filter_set'],
'max_in_table' => CSettingsHelper::get(CSettingsHelper::MAX_IN_TABLE),
'service' => $this->service,