lib/omniauth/strategies/jira.rb in omniauth-jira-0.1.0 vs lib/omniauth/strategies/jira.rb in omniauth-jira-0.2.0

- old
+ new

@@ -4,43 +4,61 @@ module OmniAuth module Strategies class JIRA < OmniAuth::Strategies::OAuth - option :name, "JIRA" + option :name, 'jira' option :client_options, { - :signature_method => 'RSA-SHA1', + :signature_method => 'RSA-SHA1', :request_token_path => '/plugins/servlet/oauth/request-token', - :authorize_path => "/plugins/servlet/oauth/authorize", - :access_token_path => '/plugins/servlet/oauth/access-token', - :site => nil + :authorize_path => '/plugins/servlet/oauth/authorize', + :access_token_path => '/plugins/servlet/oauth/access-token', + :site => nil } - uid{ raw_info['name'] } + uid{ user_info['key'] } info do { - :name => raw_info['name'], - :self => raw_info['self'] + nickname: user_info['name'], + email: user_info['emailAddress'], + name: user_info['displayName'], + time_zone: user_info['timeZone'], + locale: user_info['locale'], + image: user_info['avatarUrls'] && user_info['avatarUrls']['48x48'], + urls: { + self: session_info['self'] + } } end extra do { 'raw_info' => raw_info } end - def consumer - consumer = ::OAuth::Consumer.new(options.consumer_key, options.consumer_secret, options.client_options) - consumer.http.open_timeout = options.open_timeout if options.open_timeout - consumer.http.read_timeout = options.read_timeout if options.read_timeout - consumer.http.set_debug_output($stderr) - consumer + credentials do + if access_token.params.has_key?(:oauth_expires_in) + { + "expires" => true, + "expires_at" => (Time.now + (access_token.params[:oauth_expires_in].to_i / 1000)).to_i + } + end end def raw_info - @raw_info ||= MultiJson.decode(access_token.get('/rest/auth/1/session').body) + @raw_info ||= {session_info: session_info, user_info: user_info} + end + + def session_info + @session_info ||= MultiJson.decode(access_token.get('/rest/auth/1/session').body) + rescue ::Errno::ETIMEDOUT + raise ::Timeout::Error + end + + def user_info + @user_info ||= MultiJson.decode(access_token.get(session_info['self']).body) rescue ::Errno::ETIMEDOUT raise ::Timeout::Error end end end