/** * Get the currently loggin in user * * @return \Gems_User_User */ public final function getCurrentUser() { if (!self::$currentUser) { if ($this->session->__isset('__user_definition')) { $defName = $this->session->__get('__user_definition'); // Check for during upgrade. Remove for version 1.6 if (substr($defName, -10, 10) != 'Definition') { $defName .= 'Definition'; } self::$currentUser = $this->_loadClass('User', true, array($this->session, $this->_getClass($defName))); } else { if (\MUtil_Console::isConsole()) { if (!$this->project->isConsoleAllowed()) { echo "Accessing " . GEMS_PROJECT_NAME . " from the command line is not allowed.\n"; exit; } $request = \Zend_Controller_Front::getInstance()->getRequest(); if ($request instanceof \MUtil_Controller_Request_Cli && $request->hasUserLogin()) { $user = $this->getUser($request->getUserName(), $request->getUserOrganization()); $authResult = $user->authenticate($request->getUserPassword()); if (!$authResult->isValid()) { echo "Invalid user login data.\n"; echo implode("\n", $authResult->getMessages()); exit; } self::$currentUser = $user; } elseif ($this->project->getConsoleRole()) { // \MUtil_Echo::track($this->request->getUserName(), $this->request->getUserOrganization()); self::$currentUser = $this->loadUser(self::USER_CONSOLE, 0, '(system)'); } } if (!self::$currentUser) { self::$currentUser = $this->getUser(null, self::SYSTEM_NO_ORG); } self::$currentUser->setAsCurrentUser(); } } return self::$currentUser; }