Sha256: 7d7dc5ac9ba2be25a0ea834bc801bab643082e0e8b84463ba7c13957d506c6a0

Contents?: true

Size: 1.18 KB

Versions: 11

Compression:

Stored size: 1.18 KB

Contents

class User
  module Omniauthable
    extend ActiveSupport::Concern
    
    module ClassMethods
      def from_omniauth(auth)
        user = User.where(provider: auth.provider, uid: auth.uid).first
        
        unless user
          user = User.new
          user.provider = auth.provider
          user.uid = auth.uid
          user.first_name = auth.info.first_name
          user.last_name = auth.info.last_name 
          user.email = auth.info.email
          user.lastfm_user_name = auth.info.nickname if user.provider == 'lastfm'
          user.save
        end
        
        user
      end
      
      def new_with_session(params, session)
        if session["devise.user_attributes"]
          new(session["devise.user_attributes"], without_protection: true) do |user|
            user.attributes = params
            user.valid?
          end
        else
          super
        end
      end
    end
  end
    
  def password_required?
    super && provider.blank?
  end

  def email_required?
    super && provider.blank?
  end
  
  def update_with_password(params, *options)
    if encrypted_password.blank?
      update_attributes(params, *options)
    else
      super
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
voluntary-0.7.1 app/models/concerns/user/omniauthable.rb
voluntary-0.7.0 app/models/concerns/user/omniauthable.rb
voluntary-0.6.0 app/models/concerns/user/omniauthable.rb
voluntary-0.5.2 app/models/concerns/user/omniauthable.rb
voluntary-0.5.1 app/models/concerns/user/omniauthable.rb
voluntary-0.5.0 app/models/concerns/user/omniauthable.rb
voluntary-0.4.0 app/models/concerns/user/omniauthable.rb
voluntary-0.3.0 app/models/concerns/user/omniauthable.rb
voluntary-0.2.4 app/models/concerns/user/omniauthable.rb
voluntary-0.2.3 app/models/concerns/user/omniauthable.rb
voluntary-0.2.2 app/models/concerns/user/omniauthable.rb