* Rename banned and comment_banned roles * Add data update script to rename roles containing 'ban' * Add named error for Suspended users * Update unidiomatic method names * Rename misc banned to suspended * Apply suggestions from code review Co-authored-by: Michael Kohl <me@citizen428.net> * Add unit tests for suspended methods This commit also adds TODO comments for removing banned and comment_banned from the codebase after data update scripts have successfully run on all of our Forems. Co-authored-by: Michael Kohl <me@citizen428.net>
38 lines
709 B
Ruby
38 lines
709 B
Ruby
module Users
|
|
class Delete
|
|
def initialize(user)
|
|
@user = user
|
|
end
|
|
|
|
def call
|
|
delete_comments
|
|
delete_articles
|
|
delete_user_activity
|
|
user.unsubscribe_from_newsletters
|
|
EdgeCache::Bust.call("/#{user.username}")
|
|
Users::SuspendedUsername.create_from_user(user) if user.suspended?
|
|
user.destroy
|
|
Rails.cache.delete("user-destroy-token-#{user.id}")
|
|
end
|
|
|
|
def self.call(...)
|
|
new(...).call
|
|
end
|
|
|
|
private
|
|
|
|
attr_reader :user
|
|
|
|
def delete_user_activity
|
|
DeleteActivity.call(user)
|
|
end
|
|
|
|
def delete_comments
|
|
DeleteComments.call(user)
|
|
end
|
|
|
|
def delete_articles
|
|
DeleteArticles.call(user)
|
|
end
|
|
end
|
|
end
|