module Authpds::Session::UrlHandling

Public Instance Methods

login_url(params={}) click to toggle source

URL to redirect to for login. Preceded by :before_login

# File lib/authpds/session/url_handling.rb, line 8
def login_url(params={})
  auth_pds_login_url "load-login", params
end
logout_url(params={}) click to toggle source

URL to redirect to after logout.

# File lib/authpds/session/url_handling.rb, line 18
def logout_url(params={})
  auth_pds_url "logout",
    user_session_redirect_url(redirect_logout_url), params
end
sso_url(params={}) click to toggle source

URL to redirect to in the case of establishing a SSO session.

# File lib/authpds/session/url_handling.rb, line 13
def sso_url(params={})
  auth_pds_login_url "sso", params
end

Private Instance Methods

auth_pds_login_url(func, params) click to toggle source
# File lib/authpds/session/url_handling.rb, line 23
def auth_pds_login_url(func, params)
  auth_pds_url func, validate_url(params), 
    :institute => insitution_code, :calling_system => calling_system
end
auth_pds_url(func, url, params) click to toggle source
# File lib/authpds/session/url_handling.rb, line 29
def auth_pds_url(func, url, params)
  auth_pds_url = "#{pds_url}/pds?func=#{func}"
  params.each_pair do |key, value|
    next if key.blank? or value.blank?
    auth_pds_url << "&#{key}=#{CGI::escape(value)}"
  end
  auth_pds_url << "&url=#{CGI::escape(url)}"
end
user_session_redirect_url(url) click to toggle source
# File lib/authpds/session/url_handling.rb, line 39
def user_session_redirect_url(url)
  controller.user_session_redirect_url(url)
end
validate_url(params={}) click to toggle source

Returns the URL for validating a UserSession on return from a remote login system

# File lib/authpds/session/url_handling.rb, line 46
def validate_url(params={})
  url = controller.send(validate_url_name, 
    :return_url => user_session_redirect_url(params[:return_url]))
  return url if params.blank?
  url << "?" if url.match('\?').blank?
  params.each do |key, value|
    next if [:controller, :action, :return_url].include?(key)
    next if key.blank? or value.blank?
    url << "&#{calling_system}_#{key}=#{CGI::escape(value)}"
  end
  url
end