Sha256: 68ae97e52f566f7a4f61f6955a5ef6bafffefdcec9f192cc3956f821ea6ccc6d

Contents?: true

Size: 1.1 KB

Versions: 1

Compression:

Stored size: 1.1 KB

Contents

# frozen_string_literal: true

require 'graphql'

module Osso
  module GraphQL
    module Types
      class IdentityProvider < Types::BaseObject
        description 'Represents a SAML based IDP instance for an EnterpriseAccount'
        implements ::GraphQL::Types::Relay::Node

        global_id_field :gid
        field :id, ID, null: false
        field :enterprise_account_id, ID, null: false
        field :service, Types::IdentityProviderService, null: true
        field :domain, String, null: false
        field :acs_url, String, null: false
        field :sso_url, String, null: true
        field :sso_cert, String, null: true
        field :configured, Boolean, null: false
        field :documentation_pdf_url, String, null: true

        def configured
          !!(@object.sso_url && @object.sso_cert)
        end

        def documentation_pdf_url
          ENV['BASE_URL'] + '/identity_provider/documentation/' + @object.id
        end

        def self.authorized?(object, context)
          super && (context[:scope] == :admin || object.domain == context[:scope])
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
osso-0.0.3.7 lib/osso/graphql/types/identity_provider.rb