isIcingadbPreferred = Module::exists('icingadb') && ! $this->params->has('backend') && IcingadbSupport::useIcingaDbAsBackend(); if (! $this->isIcingadbPreferred) { parent::moduleInit(); } } public function showAction() { if ($this->isIcingadbPreferred) { $hostName = $this->params->shift('host'); $query = Host::on(IcingaDbObject::fetchDb()); IcingaDbObject::applyIcingaDbRestrictions($query); $query->filter(Filter::equal('host.name', $hostName)); $host = $query->first(); $this->params->add('name', $hostName); if ($host !== false) { $this->redirectNow(Url::fromPath('icingadb/host')->setParams($this->params)); } } else { $hostName = $this->params->get('host'); $query = $this->backend->select() ->from('hoststatus', array('host_name')) ->where('host_name', $hostName); if ($this->applyRestriction('monitoring/filter/objects', $query)->fetchRow() !== false) { $this->redirectNow(Url::fromPath('monitoring/host/show')->setParams($this->params)); } } $this->view->host = $hostName; } }