Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/zabbix/zabbix.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Vladishev <aleksander.vladishev@zabbix.com>2020-05-03 17:30:06 +0300
committerAlexander Vladishev <aleksander.vladishev@zabbix.com>2020-05-03 17:30:06 +0300
commit8d9be8910e07b28b4510482c0720425f8ed8233e (patch)
tree8e5ca25c795ad586db165fecff35c3f3cd61c19b /ui/app/controllers/CControllerUserEditGeneral.php
parente635eaceb24410622a928043971b8e9d89b1049b (diff)
A.F.I..... [ZBX-17667] moved "frontends/php" to "ui" directory
Diffstat (limited to 'ui/app/controllers/CControllerUserEditGeneral.php')
-rw-r--r--ui/app/controllers/CControllerUserEditGeneral.php88
1 files changed, 88 insertions, 0 deletions
diff --git a/ui/app/controllers/CControllerUserEditGeneral.php b/ui/app/controllers/CControllerUserEditGeneral.php
new file mode 100644
index 00000000000..005bd234cac
--- /dev/null
+++ b/ui/app/controllers/CControllerUserEditGeneral.php
@@ -0,0 +1,88 @@
+<?php
+/*
+** Zabbix
+** Copyright (C) 2001-2020 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 common methods, fields and operations with user edit form and profile form.
+ */
+abstract class CControllerUserEditGeneral extends CController {
+
+ /**
+ * User data from DB.
+ *
+ * @var array
+ */
+ protected $user = [];
+
+ protected function init() {
+ $this->disableSIDValidation();
+ }
+
+ /**
+ * Set user medias in data.
+ *
+ * @array $data
+ */
+ protected function setUserMedias(array $data) {
+ if ($this->hasInput('new_media')) {
+ $data['user_medias'][] = $this->getInput('new_media');
+ }
+ elseif ($this->hasInput('enable_media')) {
+ if (array_key_exists($this->getInput('enable_media'), $data['user_medias'])) {
+ $data['user_medias'][$this->getInput('enable_media')]['active'] = MEDIA_STATUS_ACTIVE;
+ }
+ }
+ elseif ($this->hasInput('disable_media')) {
+ if (array_key_exists($this->getInput('disable_media'), $data['user_medias'])) {
+ $data['user_medias'][$this->getInput('disable_media')]['active'] = MEDIA_STATUS_DISABLED;
+ }
+ }
+
+ $mediatypeids = [];
+
+ foreach ($data['user_medias'] as $media) {
+ $mediatypeids[$media['mediatypeid']] = true;
+ }
+
+ $mediatypes = API::Mediatype()->get([
+ 'output' => ['name', 'type'],
+ 'mediatypeids' => array_keys($mediatypeids),
+ 'preservekeys' => true
+ ]);
+
+ foreach ($data['user_medias'] as &$media) {
+ $media['name'] = $mediatypes[$media['mediatypeid']]['name'];
+ $media['mediatype'] = $mediatypes[$media['mediatypeid']]['type'];
+ $media['send_to_sort_field'] = is_array($media['sendto'])
+ ? implode(', ', $media['sendto'])
+ : $media['sendto'];
+ }
+ unset($media);
+
+ CArrayHelper::sort($data['user_medias'], ['name', 'send_to_sort_field']);
+
+ foreach ($data['user_medias'] as &$media) {
+ unset($media['send_to_sort_field']);
+ }
+ unset($media);
+
+ return $data;
+ }
+}