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
215 216 217 218 219 |
# File 'lib/muck-users/models/user.rb', line 215 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
189 190 191 192 |
# File 'lib/muck-users/models/user.rb', line 189 def activate! self.activated_at = Time.now.utc self.save! end |
#active? ⇒ Boolean
Authlogic automatically executes the following methods
174 175 176 |
# File 'lib/muck-users/models/user.rb', line 174 def active? !activated_at.blank? end |
#add_exclude_fields(options = {}) ⇒ Object
152 153 154 155 156 157 158 159 160 161 |
# File 'lib/muck-users/models/user.rb', line 152 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
138 139 140 141 |
# File 'lib/muck-users/models/user.rb', line 138 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
143 144 145 |
# File 'lib/muck-users/models/user.rb', line 143 def admin? self.has_role?('administrator') end |
#any_role?(*test_rolenames) ⇒ Boolean
129 130 131 132 133 134 135 |
# File 'lib/muck-users/models/user.rb', line 129 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
168 169 170 171 |
# File 'lib/muck-users/models/user.rb', line 168 def as_json( = {}) = add_exclude_fields() super() end |
#can_edit?(user) ⇒ Boolean
147 148 149 150 |
# File 'lib/muck-users/models/user.rb', line 147 def can_edit?(user) return false if user.nil? self.id == user.id || user.admin? end |
#deactivate! ⇒ Object
194 195 196 197 |
# File 'lib/muck-users/models/user.rb', line 194 def deactivate! self.activated_at = nil self.save! end |
#deliver_activation_confirmation! ⇒ Object
85 86 87 88 |
# File 'lib/muck-users/models/user.rb', line 85 def deliver_activation_confirmation! reset_perishable_token! UserMailer.activation_confirmation(self).deliver end |
#deliver_activation_instructions! ⇒ Object
90 91 92 93 |
# File 'lib/muck-users/models/user.rb', line 90 def deliver_activation_instructions! reset_perishable_token! UserMailer.activation_instructions(self).deliver end |
#deliver_password_reset_instructions! ⇒ Object
95 96 97 98 99 100 101 102 |
# File 'lib/muck-users/models/user.rb', line 95 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
104 105 106 |
# File 'lib/muck-users/models/user.rb', line 104 def deliver_username_request! UserMailer.username_request(self).deliver end |
#deliver_welcome_email ⇒ Object
81 82 83 |
# File 'lib/muck-users/models/user.rb', line 81 def deliver_welcome_email UserMailer.welcome_notification(self).deliver if MuckUsers.configuration.send_welcome end |
#display_name ⇒ Object
211 212 213 |
# File 'lib/muck-users/models/user.rb', line 211 def display_name CGI::escapeHTML(self.login) end |
#full_name ⇒ Object
203 204 205 206 207 208 209 |
# File 'lib/muck-users/models/user.rb', line 203 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
109 110 111 |
# File 'lib/muck-users/models/user.rb', line 109 def generate_password self.password = Digest::SHA1.hexdigest("--#{Time.now.to_s}--#{self.email}--#{self.id}") end |
#has_role?(rolename) ⇒ Boolean
125 126 127 |
# File 'lib/muck-users/models/user.rb', line 125 def has_role?(rolename) self.any_role?(rolename) end |
#is_in_role?(object, roles) ⇒ Boolean
121 122 123 |
# File 'lib/muck-users/models/user.rb', line 121 def is_in_role?(object, roles) raise 'not implemented' end |
#lower_login ⇒ Object
lowercase all logins
185 186 187 |
# File 'lib/muck-users/models/user.rb', line 185 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.
115 116 117 118 119 |
# File 'lib/muck-users/models/user.rb', line 115 def reset_password!(user) self.password = user[:password] self.password_confirmation = user[:password_confirmation] save end |
#short_name ⇒ Object
199 200 201 |
# File 'lib/muck-users/models/user.rb', line 199 def short_name CGI::escapeHTML(self.first_name) || self.display_name end |
#to_xml(options = {}) ⇒ Object
163 164 165 166 |
# File 'lib/muck-users/models/user.rb', line 163 def to_xml( = {}) = add_exclude_fields() super() end |