59 lines
2.2 KiB
Ruby
Executable File
59 lines
2.2 KiB
Ruby
Executable File
# == Schema Information
|
|
#
|
|
# Table name: users
|
|
#
|
|
# id :integer not null, primary key
|
|
# email :string(255) default(""), not null
|
|
# encrypted_password :string(255) default(""), not null
|
|
# reset_password_token :string(255)
|
|
# reset_password_sent_at :datetime
|
|
# remember_created_at :datetime
|
|
# sign_in_count :integer default(0)
|
|
# current_sign_in_at :datetime
|
|
# last_sign_in_at :datetime
|
|
# current_sign_in_ip :string(255)
|
|
# last_sign_in_ip :string(255)
|
|
# confirmation_token :string(255)
|
|
# confirmed_at :datetime
|
|
# confirmation_sent_at :datetime
|
|
# unconfirmed_email :string(255)
|
|
# failed_attempts :integer default(0)
|
|
# unlock_token :string(255)
|
|
# locked_at :datetime
|
|
# created_at :datetime not null
|
|
# updated_at :datetime not null
|
|
#
|
|
|
|
class User < ActiveRecord::Base
|
|
rolify
|
|
# Include default devise modules. Others available are:
|
|
# :token_authenticatable, :confirmable,
|
|
# :lockable, :timeoutable and :omniauthable
|
|
devise :database_authenticatable, :registerable,:confirmable,
|
|
:recoverable, :rememberable, :trackable, :validatable,:omniauthable, :omniauth_providers => [:facebook]
|
|
|
|
# Setup accessible (or protected) attributes for your model
|
|
attr_accessible :email, :password, :password_confirmation, :remember_me, :provider, :uid, :name
|
|
# attr_accessible :title, :body
|
|
def self.find_for_facebook_oauth(auth, signed_in_resource=nil)
|
|
user = User.where(:provider => auth.provider, :uid => auth.uid).first
|
|
unless user
|
|
user = User.create(name:auth.extra.raw_info.name,
|
|
provider:auth.provider,
|
|
uid:auth.uid,
|
|
email:auth.info.email,
|
|
password:Devise.friendly_token[0,20]
|
|
)
|
|
end
|
|
user
|
|
end
|
|
def self.new_with_session(params, session)
|
|
super.tap do |user|
|
|
if data = session["devise.facebook_data"] && session["devise.facebook_data"]["extra"]["raw_info"]
|
|
user.email = data["email"] if user.email.blank?
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|