Sha256: 8a0ac9512ca72d1323e645c0ae28b83ab39867d55e898d1fcd24e84d11ca1369

Contents?: true

Size: 1.89 KB

Versions: 19

Compression:

Stored size: 1.89 KB

Contents

require 'rhoconnect-adapters'
require 'vendor/sugar/sugar'

module RhoconnectAdapters
  module CRM
    module Sugar
      class Application < Rhoconnect::Base
        class << self
          def authenticate(username,password,session)
            sugarcrm_uri = Application.get_settings[:sugarcrm_uri]
            debug_enabled = Application.get_settings[:debug_enabled]
            begin
              current_session = nil
              current_session_obj_id = Store.get_value("#{username}:session_object_id")
              if(current_session_obj_id == nil)
                current_session = SugarCRM.connect(sugarcrm_uri, username, password, {:debug => debug_enabled}).session
              else
                current_session =  SugarCRM.sessions[current_session_obj_id.to_i]
                current_session.reconnect(sugarcrm_uri, username, password, {:debug => debug_enabled})
              end
              Store.put_value("#{username}:service_url", sugarcrm_uri)
              Store.put_value("#{username}:session_object_id", current_session.object_id)
            rescue Exception => ex
              warn "Can't authenticate user #{username}: " + ex.inspect
              return false
            end
            true
          end
    
          def get_settings
            return @settings if @settings
            begin
              file = YAML.load_file(File.join(ROOT_PATH,'settings','settings.yml'))
              env = (ENV['RHO_ENV'] || :development).to_sym
              @settings = file[env]
            
              # vendor-specific settings
              file = YAML.load_file(File.join(ROOT_PATH,'vendor','sugar','settings','settings.yml'))
              @settings.merge!(file[env])
            rescue Exception => e
              puts "Error opening settings file: #{e}"
              puts e.backtrace.join("\n")
              raise e
            end
          end
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
rhoconnect-adapters-1.1.8 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.1.7 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.1.6 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.1.5 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.1.1 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.1 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.0.6 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.0.5 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.0.3 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.0.4 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.0.3.beta3 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.0.3.beta2 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.0.3.beta1 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.0.2 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.0.1 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.0.0 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.0.0.beta3 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.0.0.beta2 generators/crm/vendor/sugar/application.rb
rhoconnect-adapters-1.0.0.beta1 generators/crm/vendor/sugar/application.rb