add support for deleting user accounts

This commit is contained in:
r888888888
2013-04-29 22:47:08 -07:00
parent 3cb5a34269
commit 51a62a8df6
3 changed files with 58 additions and 1 deletions

View File

@@ -616,6 +616,35 @@ class User < ActiveRecord::Base
end
end
module DeletionMethods
def delete!
scramble_password
remove_all_favorites
rename_for_delete
end
def rename_for_delete
alt_name = "user#{id}"
n = 0
while User.where(:name => alt_name).exists?
alt_name = "user#{id}_#{n}"
n += 1
end
update_attribute(:name, alt_name)
end
def scramble_password
update_attribute(:bcrypt_password_hash, User.bcrypt(SecureRandom.hex(16)))
end
def remove_all_favorites
Post.tag_match("fav:#{name}").find_each do |post|
Favorite.remove(post, self)
end
end
end
include BanMethods
include NameMethods
include PasswordMethods
@@ -629,6 +658,7 @@ class User < ActiveRecord::Base
include InvitationMethods
include ApiMethods
extend SearchMethods
include DeletionMethods
def initialize_default_image_size
self.default_image_size = "large"