Source
xxxxxxxxxx
'selectDChecks' => ['dcheckid', 'druleid', 'type', 'key_', 'snmp_community', 'ports', 'snmpv3_securityname',
<?php
/*
** Zabbix
** Copyright (C) 2001-2022 Zabbix SIA
**
** This program is free software; you can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation; either version 2 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** You should have received a copy of the GNU General Public License
** along with this program; if not, write to the Free Software
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
/**
* Class containing methods for operations with discovery rules.
*/
class CDRule extends CApiService {
public const ACCESS_RULES = [
'get' => ['min_user_type' => USER_TYPE_ZABBIX_USER],
'create' => ['min_user_type' => USER_TYPE_ZABBIX_ADMIN],
'update' => ['min_user_type' => USER_TYPE_ZABBIX_ADMIN],
'delete' => ['min_user_type' => USER_TYPE_ZABBIX_ADMIN]
];
protected $tableName = 'drules';
protected $tableAlias = 'dr';
protected $sortColumns = ['druleid', 'name'];
/**
* Get drule data.
*
* @param array $options
*
* @return array
*/
public function get(array $options = []) {
$result = [];
$sqlParts = [
'select' => ['drules' => 'dr.druleid'],
'from' => ['drules' => 'drules dr'],
'where' => [],
'group' => [],
'order' => [],
'limit' => null
];
$defOptions = [
'druleids' => null,
'dhostids' => null,
'dserviceids' => null,
'editable' => false,
'selectDHosts' => null,
'selectDChecks' => null,
// filter
'filter' => null,
'search' => null,
'searchByAny' => null,
'startSearch' => false,
'excludeSearch' => false,
'searchWildcardsEnabled' => null,
// output
'output' => API_OUTPUT_EXTEND,
'countOutput' => false,
'groupCount' => false,
'preservekeys' => false,
'sortfield' => '',
'sortorder' => '',
'limit' => null,
'limitSelects' => null
];
$options = zbx_array_merge($defOptions, $options);
if (self::$userData['type'] < USER_TYPE_ZABBIX_ADMIN) {
return [];
}
// druleids
if (!is_null($options['druleids'])) {
zbx_value2array($options['druleids']);
$sqlParts['where']['druleid'] = dbConditionInt('dr.druleid', $options['druleids']);
}