/** * Returns the data for a user object. It may be empty if the user is unknown. * * @param string $login_name * @param int $organization * @return array Of data to fill the user with. */ public function getUserData($login_name, $organization) { $orgs = null; try { $orgs = $this->db->fetchPairs("SELECT gor_id_organization, gor_name FROM gems__organizations WHERE gor_active = 1 ORDER BY gor_name"); natsort($orgs); } catch (\Zend_Db_Exception $zde) { } if (!$orgs) { // Table might not exist or be empty, so do something failsafe $orgs = array($organization => 'create db first'); } return array('user_id' => \Gems_User_UserLoader::SYSTEM_USER_ID, 'user_login' => $login_name, 'user_name' => $login_name, 'user_group' => 800, 'user_role' => $this->project->getConsoleRole(), 'user_style' => 'gems', 'user_base_org_id' => $organization, 'user_allowed_ip_ranges' => null, 'user_blockable' => false, '__allowedOrgs' => $orgs); }
/** * 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; }