Sha256: 950e561a1f308675c96dd322afad10e62b80c78e891e88d929f1878f900bb10c

Contents?: true

Size: 852 Bytes

Versions: 2

Compression:

Stored size: 852 Bytes

Contents

module Doorkeeper
  module OpenidConnect
    module Models
      class UserInfo
        include ActiveModel::Validations

        def initialize(resource_owner)
          @resource_owner = resource_owner
        end

        def claims
          base_claims.merge resource_owner_claims
        end

        def as_json(options = {})
          claims
        end

        private

        def base_claims
          {
            sub: subject
          }
        end

        def resource_owner_claims
          Doorkeeper::OpenidConnect.configuration.claims.to_h.map do |claim_name, claim_value|
            [claim_name, @resource_owner.instance_eval(&claim_value)]
          end.to_h
        end

        def subject
          @resource_owner.instance_eval(&Doorkeeper::OpenidConnect.configuration.subject).to_s
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
doorkeeper-openid_connect-1.0.1 lib/doorkeeper/openid_connect/models/user_info.rb
doorkeeper-openid_connect-1.0.0 lib/doorkeeper/openid_connect/models/user_info.rb