class UzuUzu::Controller::Openid

Public Instance Methods

index() click to toggle source
# File lib/uzuuzu-cms/controller/openid.rb, line 18
def index
  if session[:openid_identity]
    referer = session[:referer]
    session.delete(:referer)
    redirect referer || rf(Index)
  end
  session[:referer] = request.referrer
  respond(render_page(info, render_file(__DIR__('view/openid/index.rhtml'))))
end
logout() click to toggle source
# File lib/uzuuzu-cms/controller/openid.rb, line 28
def logout
  session.delete(:openid_identity)
  session.delete(:openid_sreg)
  session.delete(:openid_domain)
end
openid_begin() click to toggle source
# File lib/uzuuzu-cms/controller/openid.rb, line 34
def openid_begin
  url = request.params['url']
  redirect_referrer if url.to_s.empty?
  session[:openid_domain] = url
  session[:openid_entry] = request.referrer

  openid_request = openid_consumer.begin(url)

  papereq = OpenID::PAPE::Request.new
  papereq.add_policy_uri(OpenID::PAPE::AUTH_PHISHING_RESISTANT)
  papereq.max_auth_age = 2*60*60
  openid_request.add_extension(papereq)

  sregreq = OpenID::SReg::Request.new
  sregreq.request_fields(['fullname', 'nickname', 'dob', 'email',
                         'gender', 'postcode', 'country', 'language',
                         'timezone'])
  openid_request.add_extension(sregreq)
  openid_request.return_to_args['did_pape'] = 'y'

  root      = root_uri
  return_to = "#{root_uri}#{r(:openid_complete)}"
  immediate = false

  if openid_request.send_redirect?(root, return_to, immediate)
    redirect_url =
      openid_request.redirect_url(root, return_to, immediate)
    redirect redirect_url
  else
    # what the hell is @form_text ?
  end
rescue OpenID::OpenIDError => ex
  server_error
end
openid_complete() click to toggle source
# File lib/uzuuzu-cms/controller/openid.rb, line 69
def openid_complete
  openid_response = openid_consumer.complete(request.params, request.url)

  case openid_response.status
  when OpenID::Consumer::FAILURE
  when OpenID::Consumer::SUCCESS
    # Backwards compatibility
    session[:openid_identity] = openid_response.identity_url
    session[:openid_sreg] = OpenID::SReg::Response.from_success_response(openid_response)
  end
  openid_entry = session[:openid_entry]
  session.delete(:openid_entry)
  redirect openid_entry
end

Private Instance Methods

openid_consumer() click to toggle source

use memcache

# File lib/uzuuzu-cms/controller/openid.rb, line 88
def openid_consumer
  memcache = OpenID::Store::Memcache.new(UzuUzu.memcache)
  OpenID::Consumer.new(session, memcache)
end