FEATURE: Support an end date for user silencing

This commit is contained in:
Robin Ward
2017-11-14 13:20:19 -05:00
parent 52480d554a
commit 971e302ff2
33 changed files with 456 additions and 114 deletions
+37 -3
View File
@@ -274,14 +274,48 @@ class Admin::UsersController < Admin::AdminController
def silence
guardian.ensure_can_silence_user! @user
UserSilencer.silence(@user, current_user, keep_posts: true)
render body: nil
message = params[:message]
silencer = UserSilencer.new(
@user,
current_user,
silenced_till: params[:silenced_till],
reason: params[:reason],
context: message,
keep_posts: true
)
if silencer.silence && message.present?
Jobs.enqueue(
:critical_user_email,
type: :account_silenced,
user_id: @user.id,
user_history_id: silencer.user_history.id
)
end
render_json_dump(
silence: {
silenced: true,
silence_reason: params[:reason],
silenced_till: @user.silenced_till,
suspended_at: @user.silenced_at
}
)
end
def unsilence
guardian.ensure_can_unsilence_user! @user
UserSilencer.unsilence(@user, current_user)
render body: nil
render_json_dump(
unsilence: {
silenced: false,
silence_reason: nil,
silenced_till: nil,
suspended_at: nil
}
)
end
def reject_bulk