function canDeleteItem() { $entities = Profile_User::getUserEntities($this->fields['id'], true); if (Session::isViewAllEntities() || Session::haveAccessToAllOfEntities($entities)) { return true; } return false; }
static function getServicesStates($params) { global $DB, $CFG_GLPI; $where = $join = $fields = ''; $join .= " INNER JOIN `glpi_plugin_monitoring_services` ON (`glpi_plugin_monitoring_services`.`plugin_monitoring_componentscatalogs_hosts_id` = `glpi_plugin_monitoring_componentscatalogs_hosts`.`id`) INNER JOIN `glpi_plugin_monitoring_hosts` ON `glpi_plugin_monitoring_componentscatalogs_hosts`.`items_id` = `glpi_plugin_monitoring_hosts`.`items_id` AND `glpi_plugin_monitoring_componentscatalogs_hosts`.`itemtype` = `glpi_plugin_monitoring_hosts`.`itemtype` INNER JOIN `glpi_plugin_monitoring_componentscatalogs` ON `plugin_monitoring_componentscalalog_id` = `glpi_plugin_monitoring_componentscatalogs`.`id` INNER JOIN `glpi_plugin_monitoring_components` ON (`glpi_plugin_monitoring_services`.`plugin_monitoring_components_id` = `glpi_plugin_monitoring_components`.`id`) LEFT JOIN `glpi_computers` ON `glpi_plugin_monitoring_componentscatalogs_hosts`.`items_id` = `glpi_computers`.`id` AND `glpi_plugin_monitoring_componentscatalogs_hosts`.`itemtype`='Computer' LEFT JOIN `glpi_printers` ON `glpi_plugin_monitoring_componentscatalogs_hosts`.`items_id` = `glpi_printers`.`id` AND `glpi_plugin_monitoring_componentscatalogs_hosts`.`itemtype`='Printer' LEFT JOIN `glpi_networkequipments` ON `glpi_plugin_monitoring_componentscatalogs_hosts`.`items_id` = `glpi_networkequipments`.`id` AND `glpi_plugin_monitoring_componentscatalogs_hosts`.`itemtype`='NetworkEquipment' "; // Start / limit $start = 0; $limit = $CFG_GLPI["list_limit_max"]; if (isset($params['limit']) && is_numeric($params['limit'])) { $limit = $params['limit']; } if (isset($params['start']) && is_numeric($params['start'])) { $start = $params['start']; } // Entities if (isset($params['entitiesList'])) { if (!Session::haveAccessToAllOfEntities($params['entitiesList'])) { return self::Error($protocol, WEBSERVICES_ERROR_NOTALLOWED, '', 'entity'); } $where = getEntitiesRestrictRequest("WHERE", "glpi_computers", '', $params['entitiesList']) . $where; } else { $where = getEntitiesRestrictRequest("WHERE", "glpi_computers") . $where; } // Services filter if (isset($params['servicesFilter']) && ! empty($params['servicesFilter'])) { if (is_array($params['servicesFilter'])) { $where .= " AND `glpi_plugin_monitoring_components`.`name` IN ('" . implode("','",$params['servicesFilter']) . "')"; } else { $where .= " AND `glpi_plugin_monitoring_components`.`name` = '" . $params['servicesFilter'] . "'"; } } // Filter if (isset($params['filter']) && ! empty($params['filter'])) { $where .= " AND " . $params['filter']; } // Order $order = "FIELD(`glpi_plugin_monitoring_services`.`state`, 'CRITICAL','PENDING','UNKNOWN','WARNING','OK')"; if (isset($params['order'])) { $order = $params['order']; } $query = " SELECT CONCAT_WS('', `glpi_computers`.`name`, `glpi_printers`.`name`, `glpi_networkequipments`.`name`) AS host_name, `glpi_plugin_monitoring_components`.`name`, `glpi_plugin_monitoring_components`.`description`, `glpi_plugin_monitoring_services`.`state`, `glpi_plugin_monitoring_services`.`state_type`, `glpi_plugin_monitoring_services`.`event`, `glpi_plugin_monitoring_services`.`last_check`, `glpi_plugin_monitoring_services`.`is_acknowledged`, `glpi_plugin_monitoring_services`.`acknowledge_comment` FROM `glpi_plugin_monitoring_componentscatalogs_hosts` $join $where ORDER BY $order LIMIT $start,$limit; "; // Toolbox::logInFile("pm-ws", "getServicesStates, query : $query\n"); $rows = array(); $result = $DB->query($query); while ($data=$DB->fetch_array($result)) { $row = array(); foreach ($data as $key=>$value) { if (is_string($key)) { $row[$key] = $value; } } $rows[] = $row; } return $rows; }