Sha256: bf52ea3729042e3d59955e960a75a1c391ff93b98240b50750249fad001bb262

Contents?: true

Size: 1.97 KB

Versions: 2

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 )
      url = options.delete( :return_url )
      url + (url.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

2 entries across 2 versions & 1 rubygems

Version Path
Empact-authlogic_rpx-1.1.8 lib/authlogic_rpx/helper.rb
Empact-authlogic_rpx-1.1.7 lib/authlogic_rpx/helper.rb