aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/user.rb
diff options
context:
space:
mode:
authorSeb Bacon <seb.bacon@gmail.com>2011-09-09 09:07:20 +0100
committerSeb Bacon <seb.bacon@gmail.com>2011-09-09 09:07:20 +0100
commitb0181d36715c4e5258803c735b72a809b0f254a9 (patch)
treef7f496910e93213692b0ac295c08811ec03d1360 /app/models/user.rb
parenta9c7286807dca10872b5c659c216e1e2a754e9c3 (diff)
parente1d38525ae985d268a5d5478ed8122c5a5b19871 (diff)
Merge origin/develop into local develop (including Nick's design changes)
Diffstat (limited to 'app/models/user.rb')
-rw-r--r--app/models/user.rb30
1 files changed, 27 insertions, 3 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index c3c3da6f7..e98d777b1 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -16,6 +16,8 @@
# admin_level :string(255) default("none"), not null
# ban_text :text default(""), not null
# about_me :text default(""), not null
+# email_bounced_at :datetime
+# email_bounce_message :text default(""), not null
#
# models/user.rb:
@@ -350,15 +352,37 @@ class User < ActiveRecord::Base
}
end
+ def record_bounce(message)
+ self.email_bounced_at = Time.now
+ self.email_bounce_message = message
+ self.save!
+ end
+
+ def should_be_emailed?
+ return (self.email_confirmed && self.email_bounced_at.nil?)
+ end
+
+ ## Private instance methods
private
+ def create_new_salt
+ self.salt = self.object_id.to_s + rand.to_s
+ end
+
+ ## Class methods
def User.encrypted_password(password, salt)
string_to_hash = password + salt # XXX need to add a secret here too?
Digest::SHA1.hexdigest(string_to_hash)
end
-
- def create_new_salt
- self.salt = self.object_id.to_s + rand.to_s
+
+ def User.record_bounce_for_email(email, message)
+ user = User.find_user_by_email(email)
+ return false if user.nil?
+
+ if user.email_bounced_at.nil?
+ user.record_bounce(message)
+ end
+ return true
end
end