mirror of
https://github.com/Retrospring/retrospring.git
synced 2025-03-13 14:49:59 +01:00
Clean up records of banned users
* Inbox entries for their questions get removed * All reports related to them get resolved
This commit is contained in:
parent
b4929300fc
commit
6d1aa013f9
1 changed files with 23 additions and 4 deletions
|
@ -18,22 +18,27 @@ module UseCase
|
|||
if reason == REASON_SPAM
|
||||
target_user.update!(
|
||||
profile_picture: nil,
|
||||
profile_header: nil
|
||||
profile_header: nil,
|
||||
)
|
||||
target_user.profile.update!(
|
||||
display_name: nil,
|
||||
description: "",
|
||||
location: "",
|
||||
website: ""
|
||||
website: "",
|
||||
)
|
||||
end
|
||||
|
||||
if permanent_ban?
|
||||
remove_inbox_entries
|
||||
resolve_reports
|
||||
end
|
||||
|
||||
{
|
||||
status: 201,
|
||||
resource: ban,
|
||||
extra: {
|
||||
target_user:
|
||||
}
|
||||
target_user:,
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
|
@ -44,6 +49,20 @@ module UseCase
|
|||
def source_user
|
||||
@source_user ||= ::User.find(source_user_id) if source_user_id
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def permanent_ban?
|
||||
expiry.nil?
|
||||
end
|
||||
|
||||
def remove_inbox_entries
|
||||
InboxEntry.joins(:question).where(questions: { user_id: target_user_id }).destroy_all
|
||||
end
|
||||
|
||||
def resolve_reports
|
||||
Report.where(target_user_id: target_user_id).update_all(resolved: true) # rubocop:disable Rails/SkipsModelValidations
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue