/** * @return string * @throws class_exception * @permissions edit */ protected function actionSwitchToUser() { $strReturn = ""; if (class_module_system_module::getModuleByName("system")->rightEdit() && class_carrier::getInstance()->getObjSession()->isSuperAdmin()) { //reset the aspect $strAddon = ""; $objDefaultAspect = class_module_system_aspect::getDefaultAspect(); if ($objDefaultAspect !== null) { $strAddon = "&aspect=" . $objDefaultAspect->getSystemid(); } $objNewUser = new class_module_user_user($this->getSystemid()); if ($this->objSession->switchSessionToUser($objNewUser)) { class_admin_helper::flushActionNavigationCache(); $this->adminReload(class_link::getLinkAdminHref("dashboard", "", $strAddon)); return ""; } else { throw new class_exception("session switch failed", class_exception::$level_ERROR); } } else { $strReturn .= $this->getLang("commons_error_permissions"); } return $strReturn; }
/** * Returns the aspect currently selected by the user. * If no aspect was selected before, the default aspect is returned instead. * In addition, the current params are processed in order to react on changes made * by the user / external sources. * * @return class_module_system_aspect null if no aspect is set up */ public static function getCurrentAspect() { //process params maybe existing if (defined("_admin_") && _admin_ && class_carrier::getInstance()->getParam("aspect") != "" && validateSystemid(class_carrier::getInstance()->getParam("aspect"))) { self::setCurrentAspectId(class_carrier::getInstance()->getParam("aspect")); } //aspect registered in session? if (validateSystemid(class_carrier::getInstance()->getObjSession()->getSession(class_module_system_aspect::$STR_SESSION_ASPECT_KEY))) { if (class_carrier::getInstance()->getObjSession()->getSession(class_module_system_aspect::$STR_SESSION_ASPECT_OBJECT, class_session::$intScopeRequest) !== false) { return class_carrier::getInstance()->getObjSession()->getSession(class_module_system_aspect::$STR_SESSION_ASPECT_OBJECT, class_session::$intScopeRequest); } else { $objAspect = new class_module_system_aspect(class_carrier::getInstance()->getObjSession()->getSession(class_module_system_aspect::$STR_SESSION_ASPECT_KEY)); class_carrier::getInstance()->getObjSession()->setSession(class_module_system_aspect::$STR_SESSION_ASPECT_OBJECT, $objAspect, class_session::$intScopeRequest); return $objAspect; } } $objAspect = class_module_system_aspect::getDefaultAspect(); if ($objAspect != null) { self::setCurrentAspectId($objAspect->getSystemid()); } return $objAspect; }