Sha256: 503cd20191a7262eee3a7a24a388790d4a596ed2533f98b523f108448ce2c693
Contents?: true
Size: 916 Bytes
Versions: 4
Compression:
Stored size: 916 Bytes
Contents
require 'active_support/concern' module DoorkeeperHub module Saml extend ActiveSupport::Concern included do devise :omniauthable, omniauth_providers: %i[saml] end class_methods do def from_omniauth(auth) return if scope_results(auth).empty? user = where(provider: auth.provider, uid: auth.uid).first_or_create do |user| user.email = auth.info.email end scope_results(auth).each do |result| user.users_companies.find_or_create_by(company: result) end user end def scope_results(auth) @scope_results ||= DoorkeeperHub .config.scope_model .where(scope_query(auth)) end def scope_query(auth) { DoorkeeperHub.token_name => auth.extra.raw_info[DoorkeeperHub.token_name] } end end end end
Version data entries
4 entries across 4 versions & 1 rubygems