Sha256: ff5359663394a84f4b1688899c0fb185af3d55543957fc71e457a9cfc04ad940
Contents?: true
Size: 1006 Bytes
Versions: 6
Compression:
Stored size: 1006 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 DoorkeeperHub.client_mode? && scope_results(auth).empty? user = where(provider: auth.provider, uid: auth.uid).first_or_create do |user| user.email = auth.info.email end unless DoorkeeperHub.client_mode? scope_results(auth).each do |result| user.users_companies.find_or_create_by(company: result) end 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
6 entries across 6 versions & 1 rubygems