From 67e935557e775ff0eac6ea95e6da0e2226b344f7 Mon Sep 17 00:00:00 2001
From: Thomas Gelf <thomas@gelf.net>
Date: Wed, 14 Jan 2015 11:01:39 +0100
Subject: [PATCH] HostController: use host actions hook

refs #8208
---
 .../controllers/HostController.php            | 23 +++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/modules/monitoring/application/controllers/HostController.php b/modules/monitoring/application/controllers/HostController.php
index 4eccb8899..150f9ae1a 100644
--- a/modules/monitoring/application/controllers/HostController.php
+++ b/modules/monitoring/application/controllers/HostController.php
@@ -9,6 +9,7 @@ use Icinga\Module\Monitoring\Forms\Command\Object\ScheduleHostCheckCommandForm;
 use Icinga\Module\Monitoring\Forms\Command\Object\ScheduleHostDowntimeCommandForm;
 use Icinga\Module\Monitoring\Object\Host;
 use Icinga\Module\Monitoring\Web\Controller\MonitoredObjectController;
+use Icinga\Web\Hook;
 
 class Monitoring_HostController extends MonitoredObjectController
 {
@@ -37,6 +38,28 @@ class Monitoring_HostController extends MonitoredObjectController
         $this->getTabs()->activate('host');
     }
 
+    protected function getHostActions()
+    {
+        $urls = array();
+
+        foreach (Hook::all('Monitoring\\HostActions') as $hook) {
+            foreach ($hook->getActionsForHost($this->object) as $id => $url) {
+                $urls[$id] = $url;
+            }
+        }
+
+        return $urls;
+    }
+
+    /**
+     * Show a host
+     */
+    public function showAction()
+    {
+        $this->view->hostActions = $this->getHostActions();
+        parent::showAction();
+    }
+
     /**
      * Acknowledge a host problem
      */