Module: AuthlogicRpx::Helper

Defined in:
lib/authlogic_rpx/helper.rb

Instance Method Summary collapse

Instance Method Details

#rpx_embed(options = {}) ⇒ Object

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)


10
11
12
13
14
15
# File 'lib/authlogic_rpx/helper.rb', line 10

def rpx_embed(options = {})
	params = (
		{ :authenticity_token => form_authenticity_token, :add_rpx => options[:add_rpx] }.collect { |n| "#{n[0]}=#{ u(n[1]) }" if n[1] }
	).compact.join('&')
	RPXNow.embed_code(options[:app_name], u( options[:return_url] + '?' + params ) )
end

#rpx_popup(options = {}) ⇒ Object

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

NB: i18n considerations? supports a :language parameter (not tested)



26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/authlogic_rpx/helper.rb', line 26

def rpx_popup(options = {})
	params = (
		{ :authenticity_token => form_authenticity_token, :add_rpx => options[:add_rpx] }.collect { |n| "#{n[0]}=#{ u(n[1]) }" if n[1] }
	).compact.join('&')
	unobtrusive = options[:unobtrusive].nil? ? true : options[:unobtrusive]
	return_url = options[:return_url] + '?' + params 
	return_url = u( return_url ) if unobtrusive # double-encoding required only if unobtrusive mode used
	RPXNow.popup_code(
				options[:link_text], 
				options[:app_name],
				return_url,
				:unobtrusive=>unobtrusive
			) 
end