Class: Carnival::AdminUser

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

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.find_for_omni_auth(auth) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/models/carnival/admin_user.rb', line 21

def self.find_for_omni_auth(auth)
  if user = AdminUser.where(email: auth.info.email).first
    user.provider = auth.provider
    user.uid = auth.uid
    user
  else
    where(auth.slice(:provider, :uid)).first_or_create do |user|
      user.provider = auth.provider
      user.uid = auth.uid
      user.name = auth.info.name
      user.email = auth.info.email
      user.avatar = auth.info.image
      user.password = Devise.friendly_token[0,20]
    end
  end
end

.new_with_session(params, session) ⇒ Object



13
14
15
16
17
18
19
# File 'app/models/carnival/admin_user.rb', line 13

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

Instance Method Details

#unread_notificationsObject



9
10
11
# File 'app/models/carnival/admin_user.rb', line 9

def unread_notifications
  self.admin_user_notifications.where(:read => false).to_a
end