Sha256: 8abce84299c4f3380ebb6448ab0be684c66df4e9428c0cd8b343af66f65d0a4b

Contents?: true

Size: 982 Bytes

Versions: 4

Compression:

Stored size: 982 Bytes

Contents

module Sso
  class Pingback
    include ::Sso::Logging
    include ::Sso::Warden::Support

    attr_reader :user, :warden, :options
    delegate :request, to: :warden
    delegate :params, to: :request

    def self.to_proc
      proc do |user, warden, options|
        new(user, warden, options).call
      end
    end

    def initialize(user, warden, options)
      @user, @warden, @options = user, warden, options
    end

    def call
      execute if logged_in?
    end

    def execute
      return false unless sso_session = ::Sso::Session.find_by_id(session["sso_session_id"])
      ::Doorkeeper::Application.all.each do |app|
        debug { "Pingback Sso::Pingback for #{app.inspect}" }
        unless app.pingback_uri.blank?
          data = ::Sso::SessionSerializer.new(sso_session)
          debug { data.inspect }
          notifier = ::Sso::Notifier.new(app.pingback_uri, app.uid, app.secret, data)
          notifier.execute
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
doorkeeper_sso-0.4.9 app/models/sso/pingback.rb
doorkeeper_sso-0.4.8 app/models/sso/pingback.rb
doorkeeper_sso-0.4.6 app/models/sso/pingback.rb
doorkeeper_sso-0.4.3 app/models/sso/pingback.rb