/**
  * Login to the depot
  * 
  * @return true if successful, false otherwise
  */
 function login($terms_checked = true)
 {
     if (empty($_SESSION['SugarDepotSessionID'])) {
         global $license;
         $GLOBALS['log']->debug("Begin SugarDepot Login");
         PackageManagerComm::initialize(false);
         require 'sugar_version.php';
         require 'config.php';
         $credentials = PackageManager::getCredentials();
         if (empty($license)) {
             loadLicense();
         }
         $info = sugarEncode('2813', serialize(getSystemInfo(true)));
         $pm = new PackageManager();
         $installed = $pm->buildInstalledReleases();
         $installed = base64_encode(serialize($installed));
         $params = array('installed_modules' => $installed, 'terms_checked' => $terms_checked, 'system_name' => $credentials['system_name']);
         $terms_version = !empty($_SESSION['SugarDepot_TermsVersion']) ? $_SESSION['SugarDepot_TermsVersion'] : '';
         if (!empty($terms_version)) {
             $params['terms_version'] = $terms_version;
         }
         $result = $GLOBALS['SugarDepot']->call('depotLogin', array(array('user_name' => $credentials['username'], 'password' => $credentials['password']), 'info' => $info, 'params' => $params));
         PackageManagerComm::errorCheck();
         if (!is_array($result)) {
             $_SESSION['SugarDepotSessionID'] = $result;
         }
         $GLOBALS['log']->debug("End SugarDepot Login");
         return $result;
     } else {
         return $_SESSION['SugarDepotSessionID'];
     }
 }