module Sorcery::Model::Submodules::External::ClassMethods
Public Instance Methods
build_from_provider(attrs) { |user| ... }
click to toggle source
NOTE: Should this build the authentication as well and return [user, auth]? Currently, users call this function for the user and call add_provider_to_user after saving
# File lib/sorcery/model/submodules/external.rb, line 80 def build_from_provider(attrs) user = new attrs.each do |k, v| user.send(:"#{k}=", v) end if block_given? return false unless yield user end user end
create_and_validate_from_provider(provider, uid, attrs)
click to toggle source
# File lib/sorcery/model/submodules/external.rb, line 47 def create_and_validate_from_provider(provider, uid, attrs) user = new(attrs) user.send(sorcery_config.authentications_class.name.demodulize.underscore.pluralize).build( sorcery_config.provider_uid_attribute_name => uid, sorcery_config.provider_attribute_name => provider ) saved = user.sorcery_adapter.save [user, saved] end
create_from_provider(provider, uid, attrs) { |user| ... }
click to toggle source
# File lib/sorcery/model/submodules/external.rb, line 57 def create_from_provider(provider, uid, attrs) user = new attrs.each do |k, v| user.send(:"#{k}=", v) end if block_given? return false unless yield user end sorcery_adapter.transaction do user.sorcery_adapter.save(validate: false) sorcery_config.authentications_class.create!( sorcery_config.authentications_user_id_attribute_name => user.id, sorcery_config.provider_attribute_name => provider, sorcery_config.provider_uid_attribute_name => uid ) end user end
load_from_provider(provider, uid)
click to toggle source
takes a provider and uid and finds a user by them.
# File lib/sorcery/model/submodules/external.rb, line 40 def load_from_provider(provider, uid) config = sorcery_config authentication = config.authentications_class.sorcery_adapter.find_by_oauth_credentials(provider, uid) # Return user if matching authentication found sorcery_adapter.find_by_id(authentication.send(config.authentications_user_id_attribute_name)) if authentication end