Sha256: 14fba969c76da7cc57d554c63f38a1ba397e47b06e294c2553757cdb0b28423c

Contents?: true

Size: 1.97 KB

Versions: 1

Compression:

Stored size: 1.97 KB

Contents

module AuthlogicRpx
	module Helper

		# helper to insert an embedded iframe RPX login
		# takes options hash:
		#   * <tt>app_name:</tt> name of the application (will be prepended to RPX domain and used in RPX dialogues)
		#   * <tt>return_url:</tt> url for the RPX callback (e.g. user_sessions_url)
		#   * <tt>add_rpx:</tt> if true, requests RPX callback to add to current session. Else runs normal authentication process (default)
		#
		# The options hash may include other options as supported by rpx_now (see http://github.com/grosser/rpx_now)
		#
		def rpx_embed(options = {})
		  app_name = options.delete( :app_name )
			token_url = build_token_url!( options )
			RPXNow.embed_code(app_name, token_url, options )
		end

		# helper to insert a link to pop-up RPX login
		# takes options hash:
		#   * <tt>link_text:</tt> text to use in the link
		#   * <tt>app_name:</tt> name of the application (will be prepended to RPX domain and used in RPX dialogues)
		#   * <tt>return_url:</tt> url for the RPX callback (e.g. user_sessions_url)
		#   * <tt>add_rpx:</tt> if true, requests RPX callback to add to current session. Else runs normal authentication process (default)
		#   * <tt>unobtrusive:</tt> true/false; sets javascript style for link. Default: true
		#
		# The options hash may include other options as supported by rpx_now (see http://github.com/grosser/rpx_now)
		#
		def rpx_popup(options = {})
			options = { :unobtrusive => true, :add_rpx => false }.merge( options )
			app_name = options.delete( :app_name )
			link_text = options.delete( :link_text )
			token_url = build_token_url!( options ) 
			RPXNow.popup_code( link_text, app_name,	token_url, options	)
		end

    private
    
    def build_token_url!( options )
      options.delete( :return_url ) + (options[:return_url].to_s.include?('?') ? '&' : '?') + (
        { :authenticity_token => form_authenticity_token, :add_rpx => options.delete( :add_rpx ) }.collect { |n| "#{n[0]}=#{ u(n[1]) }" if n[1] }
			).compact.join('&')
    end
	end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
Empact-authlogic_rpx-1.1.6 lib/authlogic_rpx/helper.rb