Module: MuckUsers::Models::User
- 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_to_role(rolename) ⇒ Object
Add the user to a new role.
- #admin? ⇒ Boolean
- #any_role?(*test_rolenames) ⇒ Boolean
- #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
- #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
197 198 199 200 201 |
# File 'lib/muck_users/models/user.rb', line 197 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
171 172 173 174 |
# File 'lib/muck_users/models/user.rb', line 171 def activate! self.activated_at = Time.now.utc self.save! end |
#active? ⇒ Boolean
Authlogic automatically executes the following methods
156 157 158 |
# File 'lib/muck_users/models/user.rb', line 156 def active? !activated_at.blank? end |
#add_to_role(rolename) ⇒ Object
Add the user to a new role
132 133 134 135 |
# File 'lib/muck_users/models/user.rb', line 132 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
137 138 139 |
# File 'lib/muck_users/models/user.rb', line 137 def admin? self.has_role?('administrator') end |
#any_role?(*test_rolenames) ⇒ Boolean
123 124 125 126 127 128 129 |
# File 'lib/muck_users/models/user.rb', line 123 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 |
#can_edit?(user) ⇒ Boolean
141 142 143 144 |
# File 'lib/muck_users/models/user.rb', line 141 def can_edit?(user) return false if user.nil? self.id == user.id || user.admin? end |
#deactivate! ⇒ Object
176 177 178 179 |
# File 'lib/muck_users/models/user.rb', line 176 def deactivate! self.activated_at = nil self.save! end |
#deliver_activation_confirmation! ⇒ Object
84 85 86 87 |
# File 'lib/muck_users/models/user.rb', line 84 def deliver_activation_confirmation! reset_perishable_token! UserMailer.activation_confirmation(self).deliver end |
#deliver_activation_instructions! ⇒ Object
89 90 91 92 |
# File 'lib/muck_users/models/user.rb', line 89 def deliver_activation_instructions! reset_perishable_token! UserMailer.activation_instructions(self).deliver end |
#deliver_password_reset_instructions! ⇒ Object
94 95 96 97 98 99 100 101 |
# File 'lib/muck_users/models/user.rb', line 94 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
103 104 105 |
# File 'lib/muck_users/models/user.rb', line 103 def deliver_username_request! UserMailer.username_request(self).deliver end |
#deliver_welcome_email ⇒ Object
80 81 82 |
# File 'lib/muck_users/models/user.rb', line 80 def deliver_welcome_email UserMailer.welcome_notification(self).deliver if MuckUsers.configuration.send_welcome end |
#display_name ⇒ Object
193 194 195 |
# File 'lib/muck_users/models/user.rb', line 193 def display_name CGI::escapeHTML(self.login) end |
#full_name ⇒ Object
185 186 187 188 189 190 191 |
# File 'lib/muck_users/models/user.rb', line 185 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 |
#has_role?(rolename) ⇒ Boolean
119 120 121 |
# File 'lib/muck_users/models/user.rb', line 119 def has_role?(rolename) self.any_role?(rolename) end |
#is_in_role?(object, roles) ⇒ Boolean
115 116 117 |
# File 'lib/muck_users/models/user.rb', line 115 def is_in_role?(object, roles) raise 'not implemented' end |
#lower_login ⇒ Object
lowercase all logins
167 168 169 |
# File 'lib/muck_users/models/user.rb', line 167 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.
109 110 111 112 113 |
# File 'lib/muck_users/models/user.rb', line 109 def reset_password!(user) self.password = user[:password] self.password_confirmation = user[:password_confirmation] save end |
#short_name ⇒ Object
181 182 183 |
# File 'lib/muck_users/models/user.rb', line 181 def short_name CGI::escapeHTML(self.first_name) || self.display_name end |
#to_xml(options = {}) ⇒ Object
146 147 148 149 150 151 152 153 |
# File 'lib/muck_users/models/user.rb', line 146 def to_xml( = {}) [:except] ||= [] [:except] << :email << :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 [:except] << :password_salt << :perishable_token << :persistence_token << :single_access_token super end |