mirror of
				https://github.com/Icinga/icingaweb2.git
				synced 2025-10-31 19:34:16 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			162 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			162 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| // @codingStandardsIgnoreStart
 | |
| // {{{ICINGA_LICENSE_HEADER}}}
 | |
| /**
 | |
|  * Icinga 2 Web - Head for multiple monitoring frontends
 | |
|  * Copyright (C) 2013 Icinga Development Team
 | |
|  *
 | |
|  * This program is free software; you can redistribute it and/or
 | |
|  * modify it under the terms of the GNU General Public License
 | |
|  * as published by the Free Software Foundation; either version 2
 | |
|  * of the License, or (at your option) any later version.
 | |
|  *
 | |
|  * This program is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  * GNU General Public License for more details.
 | |
|  *
 | |
|  * You should have received a copy of the GNU General Public License
 | |
|  * along with this program; if not, write to the Free Software
 | |
|  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 | |
|  *
 | |
|  * @copyright 2013 Icinga Development Team <info@icinga.org>
 | |
|  * @author Icinga Development Team <info@icinga.org>
 | |
|  */
 | |
| // {{{ICINGA_LICENSE_HEADER}}}
 | |
| 
 | |
| use \Icinga\Application\Benchmark;
 | |
| use \Icinga\Authentication\Manager;
 | |
| use \Icinga\Web\Controller\BaseConfigController;
 | |
| use \Icinga\Web\Widget\Tab;
 | |
| use \Icinga\Web\Url;
 | |
| use \Icinga\Web\Hook\Configuration\ConfigurationTabBuilder;
 | |
| use \Icinga\Application\Icinga;
 | |
| use \Icinga\Form\Config\GeneralForm;
 | |
| use \Icinga\Form\Config\AuthenticationForm;
 | |
| use \Icinga\Form\Config\LoggingForm;
 | |
| use \Icinga\Config\PreservingIniWriter;
 | |
| 
 | |
| /**
 | |
|  * Application wide controller for application preferences
 | |
|  */
 | |
| class ConfigController extends BaseConfigController
 | |
| {
 | |
|     /**
 | |
|      * Create tabs for this configuration controller
 | |
|      *
 | |
|      * @return  array
 | |
|      *
 | |
|      * @see     BaseConfigController::createProvidedTabs()
 | |
|      */
 | |
|     public static function createProvidedTabs()
 | |
|     {
 | |
|         return array(
 | |
|             'index' => new Tab(
 | |
|                 array(
 | |
|                     "name"      => "index",
 | |
|                     "title"     => "Application",
 | |
|                     "url"       => Url::fromPath("/config")
 | |
|                 )
 | |
|             ),
 | |
| 
 | |
|             "authentication" => new Tab(
 | |
|                 array(
 | |
|                     "name"      => "auth",
 | |
|                     "title"     => "Authentication",
 | |
|                     "url"       =>  Url::fromPath('/config/authentication')
 | |
|                 )
 | |
|             ),
 | |
| 
 | |
|             "logging" => new Tab(
 | |
|                 array(
 | |
|                     "name"      => "logging",
 | |
|                     "title"     => "Logging",
 | |
|                     "url"       => Url::fromPath("/config/logging")
 | |
|                 )
 | |
|             ),
 | |
|             "modules" => new Tab(
 | |
|                 array(
 | |
|                     "name"      => "modules",
 | |
|                     "title"     => "Modules",
 | |
|                     "url"       => Url::fromPath("/config/moduleoverview")
 | |
|                 )
 | |
|             )
 | |
|         );
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Index action, entry point for configuration
 | |
|      * @TODO: Implement configuration interface (#3777)
 | |
|      */
 | |
|     public function indexAction()
 | |
|     {
 | |
|         $form = new GeneralForm();
 | |
|         $form->setConfiguration(IcingaConfig::app());
 | |
|         $form->setRequest($this->_request);
 | |
|         if ($form->isSubmittedAndValid()) {
 | |
|             $cfg = IcingaConfig::app()->getConfigFile();
 | |
|             $writer = new PreservingIniWriter(
 | |
|                 array(
 | |
|                     'config' => $form->getConfig(),
 | |
|                     'filename' => $cfg
 | |
|                 )
 | |
|             );
 | |
|             $writer->write();
 | |
|         }
 | |
|         $this->view->form = $form;
 | |
|     }
 | |
| 
 | |
|     public function authenticationAction()
 | |
|     {
 | |
|         $form = new AuthenticationForm();
 | |
|         $form->setConfiguration(IcingaConfig::app('authentication'));
 | |
|         $form->setRequest($this->_request);
 | |
|         $form->isSubmittedAndValid();
 | |
|         $this->view->form = $form;
 | |
|     }
 | |
| 
 | |
|     public function loggingAction()
 | |
|     {
 | |
|         $form = new LoggingForm();
 | |
|         $form->setConfiguration(IcingaConfig::app());
 | |
|         $form->setRequest($this->_request);
 | |
| 
 | |
|         $this->view->form = $form;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Display the list of all modules
 | |
|      */
 | |
|     public function moduleoverviewAction()
 | |
|     {
 | |
|         $this->view->modules = Icinga::app()->getModuleManager()->select()
 | |
|             ->from('modules')
 | |
|             ->order('name');
 | |
|         $this->render('module/overview');
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Enable a specific module provided by the 'name' param
 | |
|      */
 | |
|     public function moduleenableAction()
 | |
|     {
 | |
|         $manager = Icinga::app()->getModuleManager();
 | |
|         $manager->enableModule($this->_getParam('name'));
 | |
|         $manager->loadModule($this->_getParam('name'));
 | |
|         $this->redirectNow('config/moduleoverview?_render=body');
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * Disable a module specific module provided by the 'name' param
 | |
|      */
 | |
|     public function moduledisableAction()
 | |
|     {
 | |
|         $manager = Icinga::app()->getModuleManager();
 | |
|         $manager->disableModule($this->_getParam('name'));
 | |
|         $this->redirectNow('config/moduleoverview?_render=body');
 | |
|     }
 | |
| 
 | |
| 
 | |
| }
 | |
| // @codingStandardsIgnoreEnd
 |