From fcd72fed8283cd2be0ec53364741e2d84a9c14c9 Mon Sep 17 00:00:00 2001 From: Denis Flaven Date: Tue, 2 Nov 2010 16:30:46 +0000 Subject: [PATCH] Fix for Trac #315: default organization not handled properly when there is just one organization allowed for the user. SVN:trunk[937] --- application/applicationcontext.class.inc.php | 18 ++++++++++++++++++ pages/UI.php | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/application/applicationcontext.class.inc.php b/application/applicationcontext.class.inc.php index 97bb0cd6c..cac2f2025 100644 --- a/application/applicationcontext.class.inc.php +++ b/application/applicationcontext.class.inc.php @@ -66,6 +66,24 @@ class ApplicationContext { self::$aDefaultValues[$sName] = $sValue; } + // Hmm, there must be a better (more generic) way to handle the case below: + // When there is only one possible (allowed) organization, the context must be + // fixed to this org + if ($sName == 'org_id') + { + if (MetaModel::IsValidClass('Organization')) + { + $oSearchFilter = new DBObjectSearch('Organization'); + $oSet = new CMDBObjectSet($oSearchFilter); + $iCount = $oSet->Count(); + if ($iCount == 1) + { + // Only one possible value for org_id, set it in the context + $oOrg = $oSet->Fetch(); + self::$aDefaultValues[$sName] = $oOrg->GetKey(); + } + } + } } } $this->aValues = self::$aDefaultValues; diff --git a/pages/UI.php b/pages/UI.php index b22a86670..dbbf5e3fa 100644 --- a/pages/UI.php +++ b/pages/UI.php @@ -500,13 +500,13 @@ try require_once('../application/wizardhelper.class.inc.php'); require_once('../application/startup.inc.php'); - $oAppContext = new ApplicationContext(); $operation = utils::ReadParam('operation', ''); $oKPI = new ExecutionKPI(); require_once('../application/loginwebpage.class.inc.php'); LoginWebPage::DoLogin(); // Check user rights and prompt if needed + $oAppContext = new ApplicationContext(); $oKPI->ComputeAndReport('User login');