Fix static preferences path overwriting configuration path

refs #4598
This commit is contained in:
Marius Hein 2013-08-22 16:29:54 +02:00 committed by Matthias Jentsch
parent 0217b6af42
commit c65f9d51ee

View File

@ -28,25 +28,25 @@
namespace Icinga\Application; namespace Icinga\Application;
use Icinga\Authentication\Manager as AuthenticationManager; use \Icinga\Authentication\Manager as AuthenticationManager;
use Icinga\Exception\ConfigurationError; use \Icinga\Exception\ConfigurationError;
use Icinga\User\Preferences; use \Icinga\User\Preferences;
use Icinga\User; use \Icinga\User;
use Icinga\Web\Request; use \Icinga\Web\Request;
use Zend_Controller_Front; use \Icinga\Web\View;
use Zend_Layout; use \Icinga\User\Preferences\StoreFactory;
use Zend_Config; use \Icinga\User\Preferences\SessionStore;
use Zend_Paginator; use \Zend_Controller_Front;
use Zend_View_Helper_PaginationControl; use \Zend_Layout;
use Zend_Controller_Action_HelperBroker; use \Zend_Config;
use Zend_Controller_Router_Route; use \Zend_Paginator;
use Zend_Controller_Action_Helper_ViewRenderer; use \Zend_View_Helper_PaginationControl;
use Icinga\Web\View; use \Zend_Controller_Action_HelperBroker;
use Icinga\User\Preferences\StoreFactory; use \Zend_Controller_Router_Route;
use Icinga\User\Preferences\SessionStore; use \Zend_Controller_Action_Helper_ViewRenderer;
/** /**
* Use this if you want to make use of Icinga funtionality in other web projects * Use this if you want to make use of Icinga functionality in other web projects
* *
* Usage example: * Usage example:
* <code> * <code>
@ -77,6 +77,13 @@ class Web extends ApplicationBootstrap
*/ */
private $request; private $request;
/**
* User object
*
* @var User
*/
private $user;
/** /**
* Identify web bootstrap * Identify web bootstrap
* *
@ -95,6 +102,7 @@ class Web extends ApplicationBootstrap
->setupErrorHandling() ->setupErrorHandling()
->setupTimezone() ->setupTimezone()
->setupResourceFactories() ->setupResourceFactories()
->setupUser()
->setupRequest() ->setupRequest()
->setupZendMvc() ->setupZendMvc()
->setupTranslation() ->setupTranslation()
@ -207,9 +215,8 @@ class Web extends ApplicationBootstrap
/** /**
* Create user object and inject preference interface * Create user object and inject preference interface
* *
* @return User * @return self
* * @throws ConfigurationError
* @throws ConfigurationError
*/ */
private function setupUser() private function setupUser()
{ {
@ -227,9 +234,11 @@ class Web extends ApplicationBootstrap
$user = $authenticationManager->getUser(); $user = $authenticationManager->getUser();
$this->getConfig()->preferences->configPath = Config::app() if (is_dir($this->getConfig()->preferences->configPath) === false) {
->get('preferences', new Zend_Config(array())) $this->getConfig()->preferences->configPath = Config::app()
->get('configPath', $this->getConfigDir('preferences')); ->get('preferences', new Zend_Config(array()))
->get('configPath', $this->getConfigDir('preferences'));
}
$preferenceStore = StoreFactory::create( $preferenceStore = StoreFactory::create(
$this->getConfig()->preferences, $this->getConfig()->preferences,
@ -256,8 +265,10 @@ class Web extends ApplicationBootstrap
$user->setPreferences($preferences); $user->setPreferences($preferences);
return $user; $this->user = $user;
} }
return $this;
} }
/** /**
@ -269,9 +280,8 @@ class Web extends ApplicationBootstrap
{ {
$this->request = new Request(); $this->request = new Request();
$user = $this->setupUser(); if ($this->user instanceof User) {
if ($user instanceof User) { $this->request->setUser($this->user);
$this->request->setUser($user);
} }
return $this; return $this;