/**
  * 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;
 }