Class: User

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

Overview

Copyright © 2008-2013 Michael Dvorkin and contributors.

Fat Free CRM is freely distributable under the terms of MIT license. See MIT-LICENSE file or www.opensource.org/licenses/mit-license.php


Schema Information

Table name: users

id                  :integer         not null, primary key
username            :string(32)      default(""), not null
email               :string(64)      default(""), not null
first_name          :string(32)
last_name           :string(32)
title               :string(64)
company             :string(64)
alt_email           :string(64)
phone               :string(32)
mobile              :string(32)
aim                 :string(32)
yahoo               :string(32)
google              :string(32)
skype               :string(32)
password_hash       :string(255)     default(""), not null
password_salt       :string(255)     default(""), not null
persistence_token   :string(255)     default(""), not null
perishable_token    :string(255)     default(""), not null
last_login_at       :datetime
current_login_at    :datetime
last_login_ip       :string(255)
current_login_ip    :string(255)
login_count         :integer         default(0), not null
deleted_at          :datetime
created_at          :datetime
updated_at          :datetime
admin               :boolean         default(FALSE), not null
suspended_at        :datetime
single_access_token :string(255)

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.can_signup?Boolean

Returns:

  • (Boolean)


178
179
180
# File 'app/models/users/user.rb', line 178

def can_signup?
  [:allowed, :needs_approval].include? Setting.
end

.current_abilityObject



174
175
176
# File 'app/models/users/user.rb', line 174

def current_ability
  Ability.new(User.current_user)
end

Instance Method Details

#awaits_approval?Boolean


Returns:

  • (Boolean)


110
111
112
# File 'app/models/users/user.rb', line 110

def awaits_approval?
  self.suspended? &&  == 0 && Setting. == :needs_approval
end

#deliver_password_reset_instructions!Object




121
122
123
124
# File 'app/models/users/user.rb', line 121

def deliver_password_reset_instructions!
  reset_perishable_token!
  UserMailer.password_reset_instructions(self).deliver_now
end

#full_nameObject




100
101
102
# File 'app/models/users/user.rb', line 100

def full_name
  first_name.blank? && last_name.blank? ? email : "#{first_name} #{last_name}".strip
end

#nameObject




95
96
97
# File 'app/models/users/user.rb', line 95

def name
  first_name.blank? ? username : first_name
end

#preferenceObject Also known as: pref




115
116
117
# File 'app/models/users/user.rb', line 115

def preference
  @preference ||= preferences.build
end

#set_individual_localeObject

Override global I18n.locale if the user has individual local preference.




128
129
130
# File 'app/models/users/user.rb', line 128

def set_individual_locale
  I18n.locale = preference[:locale] if preference[:locale]
end

#set_single_access_tokenObject

Generate the value of single access token if it hasn’t been set already.




134
135
136
# File 'app/models/users/user.rb', line 134

def set_single_access_token
  self.single_access_token ||= update_attribute(:single_access_token, Authlogic::Random.friendly_token)
end

#suspended?Boolean


Returns:

  • (Boolean)


105
106
107
# File 'app/models/users/user.rb', line 105

def suspended?
  suspended_at != nil
end

#to_json(_options = nil) ⇒ Object



138
139
140
# File 'app/models/users/user.rb', line 138

def to_json(_options = nil)
  [name].to_json
end

#to_xml(_options = nil) ⇒ Object



142
143
144
# File 'app/models/users/user.rb', line 142

def to_xml(_options = nil)
  [name].to_xml
end