disableCsrfValidation(); } protected function checkInput() { return true; } protected function checkPermissions() { return CWebUser::getType() == USER_TYPE_SUPER_ADMIN; } protected function doAction() { $module_dir = dirname(__DIR__); $mediatypes = Helper::webhookMediatypes(); // selected media type $mediatypeid = (string) ($_REQUEST['mediatypeid'] ?? ''); if ($mediatypeid === '' && $mediatypes) { // prefer one whose name mentions wecom foreach ($mediatypes as $mt) { if (stripos($mt['name'], 'wecom') !== false) { $mediatypeid = (string) $mt['mediatypeid']; break; } } if ($mediatypeid === '') { $mediatypeid = (string) $mediatypes[0]['mediatypeid']; } } $mediatype = null; $webhook_url = ''; $robot = null; $media = null; if ($mediatypeid !== '') { $mediatype = Helper::getMediatype($mediatypeid); if ($mediatype) { $webhook_url = Helper::webhookUrl($mediatype); } $robot = Helper::robotUser('wecomrobot'); $media = Helper::currentMedia($robot, $mediatypeid); } // selected host for map tab $selected_hostid = (string) ($_REQUEST['hostid'] ?? ''); $host_loc = ['location_lat' => '', 'location_lon' => '']; if ($selected_hostid !== '') { $h = Helper::hostLocation($selected_hostid); $inv = $h['inventory'] ?? []; $host_loc = [ 'location_lat' => $inv['location_lat'] ?? '', 'location_lon' => $inv['location_lon'] ?? '' ]; } $data = [ 'title' => I18n::t('page.title'), 'mediatypes' => $mediatypes, 'mediatypeid' => $mediatypeid, 'mediatype' => $mediatype, 'webhook_url' => $webhook_url, 'robot' => $robot, 'robot_name' => 'wecomrobot', 'media' => $media, 'severity' => $media['severity'] ?? 48, 'active' => $media['active'] ?? 0, 'sendto' => $media['sendto'] ?? 'WeCom', 'schemes' => Helper::SCHEMES, 'templates' => Helper::bundledTemplates($module_dir), 'hosts' => Helper::hosts(), 'selected_hostid' => $selected_hostid, 'host_loc' => $host_loc, 'lang' => I18n::lang() ]; $response = new CControllerResponseData($data); $response->setTitle(I18n::t('page.title')); $this->setResponse($response); } }