Sha256: e45f47941939ac2f947b8fcef44ab4a0f6c1ba991a0778f254d779044ab5f500

Contents?: true

Size: 970 Bytes

Versions: 3

Compression:

Stored size: 970 Bytes

Contents

class User < ActiveRecord::Base
	# Include default devise modules. Others available are:
	# :confirmable, :lockable, :timeoutable and :omniauthable
	devise 	:database_authenticatable, :registerable,
			:recoverable, :rememberable, :trackable, :validatable,
			:omniauthable, omniauth_providers: [:infinum]

	def self.find_for_infinum_oauth(auth)
		where(auth.slice(:provider, :uid)).first_or_create do |user|
			user.provider = "infinum"
			user.uid = auth['uid']
			user.email = auth[:extra][:email]
			user.password = Devise.friendly_token[0,20]
			user.name = "#{auth[:extra][:first_name]} #{auth[:extra][:last_name]}"
			user.image = auth[:extra][:avatar_url]
		end
	end # self.find_for_infinum_oauth

	def self.new_with_session(params, session)
		super.tap do |user|
			if data = session["devise.infinum_data"] && session["devise.infinum_data"]["extra"]["raw_info"]
			  user.email = data["email"] if user.email.blank?
			end
		end
	end # self.new_with_session
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
omniauth-infinum-0.11.1 examples/devise_and_omniauth_infinum/app/models/user.rb
omniauth-infinum-0.10.0 examples/devise_and_omniauth_infinum/app/models/user.rb
omniauth-infinum-0.10.1 examples/devise_and_omniauth_infinum/app/models/user.rb