diff --git a/application/itopwebpage.class.inc.php b/application/itopwebpage.class.inc.php index 2d4f5d16a..36bf2309b 100644 --- a/application/itopwebpage.class.inc.php +++ b/application/itopwebpage.class.inc.php @@ -754,6 +754,7 @@ EOF } $sEnvironment = utils::GetCurrentEnvironment(); + $sBackButton = utils::GetEnvironmentBackButton(); if($sEnvironment != 'production') { $sEnvLabel = trim(MetaModel::GetConfig()->Get('app_env_label')); @@ -761,7 +762,7 @@ EOF { $sEnvLabel = $sEnvironment; } - $sApplicationBanner .= '
'.Dict::Format('UI:ApplicationEnvironment', $sEnvLabel).'
'; + $sApplicationBanner .= '
'.Dict::Format('UI:ApplicationEnvironment', $sEnvLabel).$sBackButton.'
'; } $sOnlineHelpUrl = MetaModel::GetConfig()->Get('online_help'); diff --git a/application/startup.inc.php b/application/startup.inc.php index 51ae8658b..2ddf0daaa 100644 --- a/application/startup.inc.php +++ b/application/startup.inc.php @@ -27,7 +27,13 @@ require_once(APPROOT.'/core/cmdbobject.class.inc.php'); require_once(APPROOT.'/application/utils.inc.php'); session_name('itop-'.md5(APPROOT)); session_start(); -if (isset($_SESSION['itop_env'])) +if (isset($_REQUEST['switch_env'])) +{ + $sEnv = $_REQUEST['switch_env']; + $_SESSION['itop_env'] = $sEnv; + // TODO: reset the credentials as well ?? +} +else if (isset($_SESSION['itop_env'])) { $sEnv = $_SESSION['itop_env']; } diff --git a/application/utils.inc.php b/application/utils.inc.php index 754697f24..0005d691c 100644 --- a/application/utils.inc.php +++ b/application/utils.inc.php @@ -726,6 +726,29 @@ class utils } } + /** + * Get the "Back" button to go out of the current environment + */ + public static function GetEnvironmentBackButton() + { + if (isset($_SESSION['itop_return_env'])) + { + if (isset($_SESSION['itop_return_url'])) + { + $sReturnUrl = $_SESSION['itop_return_url']; + } + else + { + $sReturnUrl = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?switch_env='.$_SESSION['itop_return_env']; + } + return ' '; + } + else + { + return ''; + } + } + /** * Get target configuration file name (including full path) */