diff --git a/application/controllers/ProcessController.php b/application/controllers/ProcessController.php
index dd56855..dbbd82d 100644
--- a/application/controllers/ProcessController.php
+++ b/application/controllers/ProcessController.php
@@ -20,6 +20,8 @@ class ProcessController extends Controller
*/
public function createAction()
{
+ $this->assertPermission('businessprocess/create');
+
$this->setTitle($this->translate('Create a new business process'));
$this->tabsForCreate()->activate('create');
diff --git a/application/views/scripts/process/show.phtml b/application/views/scripts/process/show.phtml
index c3bf5eb..4ee8336 100644
--- a/application/views/scripts/process/show.phtml
+++ b/application/views/scripts/process/show.phtml
@@ -19,8 +19,6 @@ use Icinga\Module\Businessprocess\BusinessProcess;
= $this->icon('wrench') ?>
-= $this->icon('plus') ?>
-
diff --git a/configuration.php b/configuration.php
index a94fedc..6d4b89a 100644
--- a/configuration.php
+++ b/configuration.php
@@ -5,3 +5,5 @@ $section = $this->menuSection(N_('Overview'))
->setPriority(45)
->setUrl('businessprocess');
+$this->providePermission('businessprocess/create', 'Allow to create new configs');
+$this->providePermission('businessprocess/modify', 'Allow to modify processes');
diff --git a/library/Businessprocess/Controller.php b/library/Businessprocess/Controller.php
index d961dd9..5994f7c 100644
--- a/library/Businessprocess/Controller.php
+++ b/library/Businessprocess/Controller.php
@@ -85,7 +85,14 @@ class Controller extends ModuleController
protected function loadBpConfig()
{
$storage = $this->storage();
- $this->view->processList = $storage->listProcesses();
+ if ($this->hasPermission('businessprocess/create')) {
+ $this->view->processList = array_merge(
+ $storage->listProcesses(),
+ array('.new' => $this->translate('Create new configuration'))
+ );
+ } else {
+ $this->view->processList = $storage->listProcesses();
+ }
// No process found? Go to welcome page
if (empty($this->view->processList)) {
@@ -97,6 +104,10 @@ class Controller extends ModuleController
key($this->view->processList)
);
+ if ($name === '.new') {
+ $this->redirectNow('businessprocess/process/create');
+ }
+
$modifications = $this->session()->get('modifications', array());
if (array_key_exists($name, $modifications)) {
$bp = $storage->loadFromString($name, $modifications[$name]);