Sha256: 53a95ce61882cbd414200054a1a036e8552994b75135fb5d7bc4adf006630517

Contents?: true

Size: 1.07 KB

Versions: 14

Compression:

Stored size: 1.07 KB

Contents

module Carnival

  class AdminUser < ActiveRecord::Base

    devise :database_authenticatable, :recoverable, :rememberable, :trackable, :validatable

    has_many :admin_user_notifications

    def unread_notifications
      self.admin_user_notifications.where(:read => false).to_a
    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

    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
  end

end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
carnival-0.0.45 app/models/carnival/admin_user.rb
carnival-0.0.44 app/models/carnival/admin_user.rb
carnival-0.0.43 app/models/carnival/admin_user.rb
carnival-0.0.42 app/models/carnival/admin_user.rb
carnival-0.0.41 app/models/carnival/admin_user.rb
carnival-0.0.40 app/models/carnival/admin_user.rb
carnival-0.0.39 app/models/carnival/admin_user.rb
carnival-0.0.38 app/models/carnival/admin_user.rb
carnival-0.0.37 app/models/carnival/admin_user.rb
carnival-0.0.36 app/models/carnival/admin_user.rb
carnival-0.0.35 app/models/carnival/admin_user.rb
carnival-0.0.34 app/models/carnival/admin_user.rb
carnival-0.0.33 app/models/carnival/admin_user.rb
carnival-0.0.26 app/models/carnival/admin_user.rb