Class: User
Defined Under Namespace
Modules: Extensions, Liking, Listable, Omniauthable
Constant Summary
collapse
- PARENT_TYPES =
['area', 'project']
Class Method Summary
collapse
Instance Method Summary
collapse
included
Class Method Details
.by_slug_or_id(id) ⇒ Object
49
50
51
|
# File 'app/models/user.rb', line 49
def self.by_slug_or_id(id)
id.to_i.to_s == id.to_s ? find(id) : friendly.find(id)
end
|
.languages(query = nil) ⇒ Object
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'app/models/user.rb', line 53
def self.languages(query = nil)
options = []
AVAILABLE_LANGUAGES.merge(OTHER_LANGUAGES).each do |locale, language|
next if query && !language.downcase.match(query.downcase)
if query
options << { id: locale, name: language }
else
options << [language, locale]
end
end
options
end
|
Instance Method Details
#area_tokens ⇒ Object
97
98
99
|
# File 'app/models/user.rb', line 97
def area_tokens
areas
end
|
#area_tokens=(tokens) ⇒ Object
93
94
95
|
# File 'app/models/user.rb', line 93
def area_tokens=(tokens)
self.area_ids = Area.ids_from_tokens(tokens)
end
|
#best_available_name ⇒ Object
105
106
107
|
# File 'app/models/user.rb', line 105
def best_available_name
lastfm_user_name || full_name
end
|
#email_required? ⇒ Boolean
40
41
42
|
# File 'app/models/concerns/user/omniauthable.rb', line 40
def email_required?
super && provider.blank?
end
|
#foreign_language_tokens ⇒ Object
81
82
83
84
85
86
87
88
89
90
91
|
# File 'app/models/user.rb', line 81
def foreign_language_tokens
options = []
User.languages.each do |language|
next unless (foreign_languages || []).include?(language.second)
options << { id: language.second, name: language.first }
end
options
end
|
#foreign_language_tokens=(tokens) ⇒ Object
77
78
79
|
# File 'app/models/user.rb', line 77
def foreign_language_tokens=(tokens)
self.foreign_languages = tokens.split(',')
end
|
#full_name ⇒ Object
101
102
103
|
# File 'app/models/user.rb', line 101
def full_name
[first_name, last_name].join(' ')
end
|
#is_master? ⇒ Boolean
69
70
71
|
# File 'app/models/user.rb', line 69
def is_master?
roles.include? :master
end
|
#languages ⇒ Object
73
74
75
|
# File 'app/models/user.rb', line 73
def languages
(foreign_languages || []) + [language]
end
|
#password_required? ⇒ Boolean
36
37
38
|
# File 'app/models/concerns/user/omniauthable.rb', line 36
def password_required?
super && provider.blank?
end
|
#stories ⇒ Object
15
|
# File 'app/models/user.rb', line 15
def stories; Story.where(offeror_id: id); end
|
#update_with_password(params, *options) ⇒ Object
44
45
46
47
48
49
50
|
# File 'app/models/concerns/user/omniauthable.rb', line 44
def update_with_password(params, *options)
if encrypted_password.blank?
update_attributes(params, *options)
else
super
end
end
|