mirror of
https://github.com/discourse/discourse.git
synced 2026-09-05 04:40:41 -05:00
FEATURE: Support an end date for user silencing
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user