Class: Visitor

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/visitor.rb

Overview

Schema Information

Table name: visitors

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)
created_at             :datetime         not null
updated_at             :datetime         not null
first_name             :string(255)
last_name              :string(255)
provider               :string(255)
uid                    :string(255)
agb                    :boolean          default(FALSE)
newsletter             :boolean
confirmation_token     :string(255)
confirmed_at           :datetime
confirmation_sent_at   :datetime
unconfirmed_email      :string(255)
failed_attempts        :integer
unlock_token           :string(255)
locked_at              :datetime
authentication_token   :string(255)
username               :string(255)

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.find_for_facebook_oauth(auth, signed_in_resource = nil) ⇒ Object



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# File 'app/models/visitor.rb', line 72

def self.find_for_facebook_oauth(auth, signed_in_resource=nil)
  #logger.error auth.inspect
  visitor = Visitor.where(:provider => auth.provider, :uid => auth.uid).first
  unless visitor
    visitor = Visitor.find_by_email(auth.info.email)
    if visitor.present?
      visitor.provider = auth.provider
      visitor.uid = auth.uid
      visitor.save
    else
      pass = Devise.friendly_token[0,20]
      visitor = Visitor.create(username: auth.info.name,
                         provider: auth.provider    ,
                         uid: auth.uid              ,
                         email: auth.info.email     ,
                         password: pass             ,
                         password_confirmation: pass,
                         agb: true
                         )
    end
    logger.error "*"*20
    logger.error visitor.errors.inspect
  end
  visitor
end

.new_with_session(params, session) ⇒ Object

if you want to allow your users to cancel sign up with Facebook, you can redirect them to “cancel_user_registration_path”



99
100
101
102
103
104
105
# File 'app/models/visitor.rb', line 99

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

Instance Method Details

#send_confirmation_mailObject



66
67
68
69
70
# File 'app/models/visitor.rb', line 66

def send_confirmation_mail
  if self.email.present? && Setting.for_key('visitors.send_confirmation_mail') == 'true'
    ConfirmationMailer.send_confirmation_mail(self.email).deliver!
  end
end

#titleObject



56
57
58
59
60
61
62
63
64
# File 'app/models/visitor.rb', line 56

def title
  if self.username.present?
    self.username
  elsif self.first_name.present? && self.last_name.present?
    "#{self.first_name} #{self.last_name[0]}."
  else
    self.email
  end
end