disableCsrfValidation(); } protected function checkInput(): bool { $fields = [ 'name' => 'required|string', 'sysmapid' => 'required|db sysmaps.sysmapid', 'depth' => 'required|ge 1|le '.Widget::MAX_DEPTH ]; $ret = $this->validateInput($fields); if (!$ret) { $this->setResponse( new CControllerResponseData(['main_block' => json_encode([ 'error' => [ 'messages' => array_column(get_and_clear_messages(), 'message') ] ], JSON_THROW_ON_ERROR)]) ); } return $ret; } protected function checkPermissions(): bool { return $this->getUserType() >= USER_TYPE_ZABBIX_USER; } protected function doAction(): void { $sysmapid = $this->getInput('sysmapid'); $sysmap = []; if ($sysmapid != 0) { $sysmaps = API::Map()->get([ 'output' => ['sysmapid', 'name'], 'sysmapids' => [$sysmapid] ]); if ($sysmaps) { $sysmap = $sysmaps[0]; $sysmap = [ 'id' => $sysmap['sysmapid'], 'name' => $sysmap['name'] ]; } else { $sysmap = [ 'id' => $sysmapid, 'name' => _('Inaccessible map'), 'inaccessible' => true ]; } } $this->setResponse(new CControllerResponseData([ 'name' => $this->getInput('name'), 'sysmap' => $sysmap, 'depth' => $this->getInput('depth'), 'user' => [ 'debug_mode' => $this->getDebugMode() ] ])); } }