FIX: A much nicer error message if you can't ignore/mute a user

This commit is contained in:
Robin Ward
2020-06-18 13:41:27 -04:00
parent 6cb6faff29
commit 494a27dc27
4 changed files with 25 additions and 1 deletions

View File

@ -1178,6 +1178,7 @@ class UsersController < ApplicationController
user = fetch_user_from_params
if params[:notification_level] == "ignore"
@error_message = "ignore_error"
guardian.ensure_can_ignore_user!(user)
MutedUser.where(user: current_user, muted_user: user).delete_all
ignored_user = IgnoredUser.find_by(user: current_user, ignored_user: user)
@ -1187,6 +1188,7 @@ class UsersController < ApplicationController
IgnoredUser.create!(user: current_user, ignored_user: user, expiring_at: Time.parse(params[:expiring_at]))
end
elsif params[:notification_level] == "mute"
@error_message = "mute_error"
guardian.ensure_can_mute_user!(user)
IgnoredUser.where(user: current_user, ignored_user: user).delete_all
MutedUser.find_or_create_by!(user: current_user, muted_user: user)
@ -1196,6 +1198,8 @@ class UsersController < ApplicationController
end
render json: success_json
rescue Discourse::InvalidAccess => e
render_json_error(I18n.t("notification_level.#{@error_message}"))
end
def read_faq