Module: MuckUsers::Models::MuckUser
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/muck-users/models/user.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #accepts_terms_of_service? ⇒ Boolean
- #activate! ⇒ Object
-
#active? ⇒ Boolean
Authlogic automatically executes the following methods.
- #add_exclude_fields(options = {}) ⇒ Object
-
#add_to_role(rolename) ⇒ Object
Add the user to a new role.
- #admin? ⇒ Boolean
- #any_role?(*test_rolenames) ⇒ Boolean
- #as_json(options = {}) ⇒ Object
- #can_edit?(user) ⇒ Boolean
- #deactivate! ⇒ Object
- #deliver_activation_confirmation! ⇒ Object
- #deliver_activation_instructions! ⇒ Object
- #deliver_password_reset_instructions! ⇒ Object
- #deliver_username_request! ⇒ Object
- #deliver_welcome_email ⇒ Object
- #display_name ⇒ Object
- #full_name ⇒ Object
-
#generate_password ⇒ Object
Build a random password.
- #has_role?(rolename) ⇒ Boolean
- #is_in_role?(object, roles) ⇒ Boolean
-
#lower_login ⇒ Object
lowercase all logins.
-
#reset_password!(user) ⇒ Object
Since password reset doesn’t need to change openid_identifier, we save without block as usual.
- #short_name ⇒ Object
- #to_xml(options = {}) ⇒ Object
Instance Method Details
#accepts_terms_of_service? ⇒ Boolean
223 224 225 226 227 |
# File 'lib/muck-users/models/user.rb', line 223 def accepts_terms_of_service? if !self.terms_of_service self.errors[:base] << I18n.translate('muck.users.terms_of_service_required') end end |
#activate! ⇒ Object
197 198 199 200 |
# File 'lib/muck-users/models/user.rb', line 197 def activate! self.activated_at = Time.now.utc self.save! end |
#active? ⇒ Boolean
Authlogic automatically executes the following methods
182 183 184 |
# File 'lib/muck-users/models/user.rb', line 182 def active? !activated_at.blank? end |
#add_exclude_fields(options = {}) ⇒ Object
160 161 162 163 164 165 166 167 168 169 |
# File 'lib/muck-users/models/user.rb', line 160 def add_exclude_fields( = {}) ||= {} [:except] ||= [] [:except] << :crypted_password << :salt << :remember_token << :remember_token_expires_at << :activation_code [:except] << :activated_at << :password_reset_code << :enabled << :terms_of_service << :can_send_messages << :identity_url [:except] << :tmp_password << :protected_profile << :public_profile << :disabled_at << :current_login_ip << :access_code_id [:except] << :failed_login_count << :last_login_ip [:except] << :password_salt << :perishable_token << :persistence_token << :single_access_token end |
#add_to_role(rolename) ⇒ Object
Add the user to a new role
146 147 148 149 |
# File 'lib/muck-users/models/user.rb', line 146 def add_to_role(rolename) role = Role.find_or_create_by_rolename(rolename) self.roles << role if !self.roles.include?(role) # Make sure that the user can only be put into a role once end |
#admin? ⇒ Boolean
151 152 153 |
# File 'lib/muck-users/models/user.rb', line 151 def admin? self.has_role?('administrator') end |
#any_role?(*test_rolenames) ⇒ Boolean
137 138 139 140 141 142 143 |
# File 'lib/muck-users/models/user.rb', line 137 def any_role?(*test_rolenames) test_rolenames = [test_rolenames] unless test_rolenames.is_a?(Array) test_rolenames.flatten! @role_names ||= self.roles.map(&:rolename) return false if @role_names.blank? (@role_names & test_rolenames).length > 0 end |
#as_json(options = {}) ⇒ Object
176 177 178 179 |
# File 'lib/muck-users/models/user.rb', line 176 def as_json( = {}) = add_exclude_fields() super() end |
#can_edit?(user) ⇒ Boolean
155 156 157 158 |
# File 'lib/muck-users/models/user.rb', line 155 def can_edit?(user) return false if user.nil? self.id == user.id || user.admin? end |
#deactivate! ⇒ Object
202 203 204 205 |
# File 'lib/muck-users/models/user.rb', line 202 def deactivate! self.activated_at = nil self.save! end |
#deliver_activation_confirmation! ⇒ Object
93 94 95 96 |
# File 'lib/muck-users/models/user.rb', line 93 def deliver_activation_confirmation! reset_perishable_token! UserMailer.activation_confirmation(self).deliver end |
#deliver_activation_instructions! ⇒ Object
98 99 100 101 |
# File 'lib/muck-users/models/user.rb', line 98 def deliver_activation_instructions! reset_perishable_token! UserMailer.activation_instructions(self).deliver end |
#deliver_password_reset_instructions! ⇒ Object
103 104 105 106 107 108 109 110 |
# File 'lib/muck-users/models/user.rb', line 103 def deliver_password_reset_instructions! if self.active? reset_perishable_token! UserMailer.password_reset_instructions(self).deliver else UserMailer.password_not_active_instructions(self).deliver end end |
#deliver_username_request! ⇒ Object
112 113 114 |
# File 'lib/muck-users/models/user.rb', line 112 def deliver_username_request! UserMailer.username_request(self).deliver end |
#deliver_welcome_email ⇒ Object
89 90 91 |
# File 'lib/muck-users/models/user.rb', line 89 def deliver_welcome_email UserMailer.welcome_notification(self).deliver if MuckUsers.configuration.send_welcome end |
#display_name ⇒ Object
219 220 221 |
# File 'lib/muck-users/models/user.rb', line 219 def display_name CGI::escapeHTML(self.login) end |
#full_name ⇒ Object
211 212 213 214 215 216 217 |
# File 'lib/muck-users/models/user.rb', line 211 def full_name if self.first_name.blank? && self.last_name.blank? self.display_name rescue 'Deleted user' else ((CGI::escapeHTML(self.first_name) || '') + ' ' + (CGI::escapeHTML(self.last_name) || '')).strip end end |
#generate_password ⇒ Object
Build a random password
117 118 119 |
# File 'lib/muck-users/models/user.rb', line 117 def generate_password self.password = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{self.email}--#{self.id}") end |
#has_role?(rolename) ⇒ Boolean
133 134 135 |
# File 'lib/muck-users/models/user.rb', line 133 def has_role?(rolename) self.any_role?(rolename) end |
#is_in_role?(object, roles) ⇒ Boolean
129 130 131 |
# File 'lib/muck-users/models/user.rb', line 129 def is_in_role?(object, roles) raise 'not implemented' end |
#lower_login ⇒ Object
lowercase all logins
193 194 195 |
# File 'lib/muck-users/models/user.rb', line 193 def lower_login self.login = self.login.nil? ? nil : self.login.downcase end |
#reset_password!(user) ⇒ Object
Since password reset doesn’t need to change openid_identifier, we save without block as usual.
123 124 125 126 127 |
# File 'lib/muck-users/models/user.rb', line 123 def reset_password!(user) self.password = user[:password] self.password_confirmation = user[:password_confirmation] save end |
#short_name ⇒ Object
207 208 209 |
# File 'lib/muck-users/models/user.rb', line 207 def short_name CGI::escapeHTML(self.first_name) || self.display_name end |
#to_xml(options = {}) ⇒ Object
171 172 173 174 |
# File 'lib/muck-users/models/user.rb', line 171 def to_xml( = {}) = add_exclude_fields() super() end |