Sha256: 43c4936bf1ac27dcc03e5e1835e1ec6203de7ac1cb05224024c9986b886daf26

Contents?: true

Size: 1.11 KB

Versions: 13

Compression:

Stored size: 1.11 KB

Contents

require 'openid'
require 'skip_embedded/initial_settings'

module SkipEmbedded
  class OpFixation
    cattr_accessor :servers, :sso_openid_provider_url

    def self.accept?(claimed_url)
      servers.empty? || new(*servers).accept?(claimed_url)
    end

    def self.sso_enabled?
      @@config && !@@config["disabled"]
    end

    def self.sso_openid_logout_url
      URI.join(sso_openid_provider_url, "logout").to_s if sso_openid_provider_url
    end

    @@config = InitialSettings['skip_collaboration']['fixed_op']
    if sso_enabled?
      @@servers = @@config["acceptable_op_urls"]
      @@sso_openid_provider_url = @@config["fixed_openid_server_url"]
    else
      @@servers, @@sso_openid_provider_url = [], nil
    end

    def initialize(*allowed)
      @available_servers = allowed
    end

    def accept?(claimed_url)
      begin
        _, services = OpenID.discover claimed_url
        services.any?{|s| @available_servers.include?(s.server_url) }
      rescue OpenID::DiscoveryFailure => why
        ::OpenID::Util.logger.error "FixedOp discovery failed: #{why.message}"
        false
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
openskip-skip_embedded-0.9.0 lib/skip_embedded/op_fixation.rb
openskip-skip_embedded-0.9.1 lib/skip_embedded/op_fixation.rb
openskip-skip_embedded-0.9.10 lib/skip_embedded/op_fixation.rb
openskip-skip_embedded-0.9.11 lib/skip_embedded/op_fixation.rb
openskip-skip_embedded-0.9.12 lib/skip_embedded/op_fixation.rb
openskip-skip_embedded-0.9.2 lib/skip_embedded/op_fixation.rb
openskip-skip_embedded-0.9.3 lib/skip_embedded/op_fixation.rb
openskip-skip_embedded-0.9.4 lib/skip_embedded/op_fixation.rb
openskip-skip_embedded-0.9.5 lib/skip_embedded/op_fixation.rb
openskip-skip_embedded-0.9.6 lib/skip_embedded/op_fixation.rb
openskip-skip_embedded-0.9.7 lib/skip_embedded/op_fixation.rb
openskip-skip_embedded-0.9.8 lib/skip_embedded/op_fixation.rb
openskip-skip_embedded-0.9.9 lib/skip_embedded/op_fixation.rb