app/models/user.rb in artfully_ose-1.1.0 vs app/models/user.rb in artfully_ose-1.2.0.alpha.1
- old
+ new
@@ -1,47 +1,60 @@
- class User < ActiveRecord::Base
+class User < ActiveRecord::Base
include Ext::DeviseConfiguration
include Ext::Integrations::User
+ devise :token_authenticatable
+ before_save :ensure_authentication_token
+
has_many :shows
has_many :orders
has_many :imports
has_many :discounts
- has_many :memberships
- has_many :organizations, :through => :memberships
+ has_many :user_memberships
+ has_many :organizations, :through => :user_memberships
scope :logged_in_more_than_once, where("users.sign_in_count > 1")
def self.generate_password
Devise.friendly_token
end
# Setup accessible (or protected) attributes for your model
- attr_accessible :email, :password, :password_confirmation, :remember_me, :user_agreement, :newsletter_emails
+ attr_accessible :email, :password, :password_confirmation, :remember_me, :user_agreement, :newsletter_emails, :first_name, :last_name, :user_memberships_attributes
def is_in_organization?
- @is_in_organization ||= memberships.any?
+ @is_in_organization ||= !!(user_memberships.any? && ! user_memberships.first.organization.new_record?)
end
def current_organization
- @current_organization ||= (is_in_organization? ? memberships.first.organization : Organization.new)
+ @current_organization ||= is_in_organization? ? user_memberships.first.organization : Organization.new
end
def membership_in(organization)
- memberships.where(:organization_id => organization.id).limit(1).first
+ user_memberships.where(:organization_id => organization.id).limit(1).first
end
-
+
def self.like(query = "")
return if query.blank?
q = "%#{query}%"
- self.joins("LEFT OUTER JOIN memberships m ON m.user_id = users.id")
+ self.joins("LEFT OUTER JOIN user_memberships m ON m.user_id = users.id")
.joins("LEFT OUTER JOIN organizations o ON o.id = m.organization_id")
.includes(:organizations)
.where("users.email like ? or o.name like ?", q, q)
end
def active_for_authentication?
super && !suspended?
+ end
+
+ def to_s
+ if first_name.present? || last_name.present?
+ [first_name, last_name].reject(&:blank?).join(" ")
+ elsif email.present?
+ email.to_s
+ else
+ "No Name ##{id}"
+ end
end
end