<?php declare(strict_types = 0);
class CControllerDiscoveryDelete extends CController {
protected function checkInput() {
$fields = [
'druleids' => 'required|array_db drules.druleid'
];
$ret = $this->validateInput($fields);
if (!$ret) {
$this->setResponse(new CControllerResponseFatal());
}
return $ret;
}
protected function checkPermissions() {
if (!$this->checkAccess(CRoleHelper::UI_CONFIGURATION_DISCOVERY)) {
return false;
}
$drules = API::DRule()->get([
'druleids' => $this->getInput('druleids'),
'countOutput' => true,
'editable' => true
]);
return ($drules == count($this->getInput('druleids')));
}
protected function doAction() {
$druleids = $this->getInput('druleids');
$result = API::DRule()->delete($druleids);
$deleted = count($druleids);
$response = new CControllerResponseRedirect((new CUrl('zabbix.php'))
->setArgument('action', 'discovery.list')
->setArgument('page', CPagerHelper::loadPage('discovery.list', null))
);
if ($result) {
$response->setFormData(['uncheck' => '1']);
CMessageHelper::setSuccessTitle(_n('Discovery rule deleted', 'Discovery rules deleted', $deleted));
}
else {
CMessageHelper::setErrorTitle(_n('Cannot delete discovery rule', 'Cannot delete discovery rules',
$deleted
));
}
$this->setResponse($response);
}
}