Repository URL to install this package:
|
Version:
4.0.0.pre.3 ▾
|
module Core
class User < ActiveRecord::Base
include UserMergeConcern
include FacebookGraphConcern
devise :database_authenticatable, :registerable, :lockable, :recoverable,
:rememberable, :trackable, :validatable,
:omniauthable, omniauth_providers: [:gplus, :facebook]
has_one :organisation, foreign_key: 'owner_id'
has_many :bookings, dependent: :destroy
has_many :pass_purchases, dependent: :destroy
has_many :oauth_applications,
class_name: 'Doorkeeper::Application', as: :owner,
dependent: :destroy
validates :name, presence: true
validates :email, presence: true, uniqueness: true
default_scope { order('created_at') }
def booking_email
"bookings+#{Zlib.crc32(email)}@getfitter.co"
end
def active_pass_purchases
active = []
pass_purchases.includes(:pass).each do |purchase|
expires = purchase.purchased_date.advance(days: purchase.pass.duration)
active << purchase if expires >= DateTime.now
end
active
end
def active_passes
passes = []
active_pass_purchases.each do |purchase|
passes << purchase.pass
end
passes
end
def valid_pass?(event)
result = false
active_pass_purchases.each do |purchase|
result = true if purchase.pass.organisation == event.organisation
end
result
end
def self.from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_create do |user|
user.email = auth.info.email
user.password = Devise.friendly_token[0, 20]
user.name = auth.info.name
end
end
def self.from_hash(auth)
where(provider: auth[:provider],
uid: auth[:id]).first_or_create! do |user|
user.email = auth[:info][:email]
user.password = Devise.friendly_token[0, 20]
user.name = auth[:info][:name]
end
end
end
end