Sha256: a6f730311e72babaed34e12b4c125196a255248c9ab0721fbed60f983ac35057

Contents?: true

Size: 1.85 KB

Versions: 8

Compression:

Stored size: 1.85 KB

Contents

require 'rubygems'
require 'bundler/setup'

require 'openid'

module RubyApp

  module Elements

    module Pages

      module Authentication

        module OpenId

          module Base
            require 'ruby_app'
            require 'ruby_app/elements/page'

            class BaseAuthenticationPage < RubyApp::Elements::Page

              template_path(:all, File.dirname(__FILE__))

              def initialize(identifier)
                super()

                self.loaded do |element, event|

                  unless @consumer
                    @consumer = ::OpenID::Consumer.new(RubyApp::Session.data, nil)
                    request = @consumer.begin(identifier)
                    self.process_request(request)
                    event.go(request.redirect_url(RubyApp::Request.url, RubyApp::Request.url))
                  else
                    response = @consumer.complete(RubyApp::Request.query, RubyApp::Request.url)
                    case response.status
                      when ::OpenID::Consumer::SUCCESS
                        RubyApp::Session.identity = self.create_identity_from_response(response)
                        RubyApp::Session.pages.pop
                        event.go('/')
                      when ::OpenID::Consumer::CANCEL
                        RubyApp::Session.pages.pop
                        event.go('/')
                      when ::OpenID::Consumer::FAILURE
                        RubyApp::Log.debug("#{self.class}#loaded response=#{response.inspect}")
                    end
                  end
                end

              end

              def process_request(request)
              end

              def create_identity_from_response(response)
                RubyApp::Session::Identity.new(response.identity_url)
              end

            end

          end

        end

      end

    end

  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
RubyApp-0.2.7 lib/ruby_app/elements/pages/authentication/open_id/base/base_authentication_page.rb
RubyApp-0.2.6 lib/ruby_app/elements/pages/authentication/open_id/base/base_authentication_page.rb
RubyApp-0.2.5 lib/ruby_app/elements/pages/authentication/open_id/base/base_authentication_page.rb
RubyApp-0.2.4 lib/ruby_app/elements/pages/authentication/open_id/base/base_authentication_page.rb
RubyApp-0.2.3 lib/ruby_app/elements/pages/authentication/open_id/base/base_authentication_page.rb
RubyApp-0.2.2 lib/ruby_app/elements/pages/authentication/open_id/base/base_authentication_page.rb
RubyApp-0.2.1 lib/ruby_app/elements/pages/authentication/open_id/base/base_authentication_page.rb
RubyApp-0.2.0 lib/ruby_app/elements/pages/authentication/open_id/base/base_authentication_page.rb