mirror of
https://github.com/Retrospring/retrospring.git
synced 2025-03-13 15:20:00 +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
|
if reason == REASON_SPAM
|
||||||
target_user.update!(
|
target_user.update!(
|
||||||
profile_picture: nil,
|
profile_picture: nil,
|
||||||
profile_header: nil
|
profile_header: nil,
|
||||||
)
|
)
|
||||||
target_user.profile.update!(
|
target_user.profile.update!(
|
||||||
display_name: nil,
|
display_name: nil,
|
||||||
description: "",
|
description: "",
|
||||||
location: "",
|
location: "",
|
||||||
website: ""
|
website: "",
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if permanent_ban?
|
||||||
|
remove_inbox_entries
|
||||||
|
resolve_reports
|
||||||
|
end
|
||||||
|
|
||||||
{
|
{
|
||||||
status: 201,
|
status: 201,
|
||||||
resource: ban,
|
resource: ban,
|
||||||
extra: {
|
extra: {
|
||||||
target_user:
|
target_user:,
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -44,6 +49,20 @@ module UseCase
|
||||||
def source_user
|
def source_user
|
||||||
@source_user ||= ::User.find(source_user_id) if source_user_id
|
@source_user ||= ::User.find(source_user_id) if source_user_id
|
||||||
end
|
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
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue