1<?php
2/*
3** Zabbix
4** Copyright (C) 2001-2021 Zabbix SIA
5**
6** This program is free software; you can redistribute it and/or modify
7** it under the terms of the GNU General Public License as published by
8** the Free Software Foundation; either version 2 of the License, or
9** (at your option) any later version.
10**
11** This program is distributed in the hope that it will be useful,
12** but WITHOUT ANY WARRANTY; without even the implied warranty of
13** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14** GNU General Public License for more details.
15**
16** You should have received a copy of the GNU General Public License
17** along with this program; if not, write to the Free Software
18** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19**/
20
21
22class CControllerIconMapList extends CController {
23
24	protected function init() {
25		$this->disableSIDValidation();
26	}
27
28	protected function checkInput() {
29		return true;
30	}
31
32	protected function checkPermissions() {
33		return ($this->getUserType() == USER_TYPE_SUPER_ADMIN);
34	}
35
36	protected function doAction() {
37		$data = [
38			'icon_list' => [],
39			'inventory_list' => []
40		];
41
42		$icon_list = API::Image()->get([
43			'output' => ['imageid', 'name'],
44			'filter' => ['imagetype' => IMAGE_TYPE_ICON]
45		]);
46
47		foreach ($icon_list as $icon) {
48			$data['icon_list'][$icon['imageid']] = $icon['name'];
49		}
50
51		$inventory_fields = getHostInventories();
52		foreach ($inventory_fields as $field) {
53			$data['inventory_list'][$field['nr']] = $field['title'];
54		}
55
56		$data['iconmaps'] = API::IconMap()->get([
57			'output' => ['mappings', 'name', 'iconmapid'],
58			'selectMappings' => ['inventory_link', 'expression', 'iconid'],
59			'editable' => true
60		]);
61		order_result($data['iconmaps'], 'name');
62
63		$response = new CControllerResponseData($data);
64		$response->setTitle(_('Configuration of icon mapping'));
65		$this->setResponse($response);
66	}
67}
68