FIX: Error message for 403 when featuring topic on profile (#9149)

This commit is contained in:
Mark VanLandingham 2020-03-09 11:41:07 -05:00 committed by GitHub
parent 5037b80c9c
commit 3ad5cb0cbc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 9 additions and 1 deletions

View File

@ -1362,7 +1362,10 @@ class UsersController < ApplicationController
user = fetch_user_from_params
topic = Topic.find(params[:topic_id].to_i)
raise Discourse::InvalidAccess.new unless topic && guardian.can_feature_topic?(user, topic)
if !guardian.can_feature_topic?(user, topic)
return render_json_error(I18n.t('activerecord.errors.models.user_profile.attributes.featured_topic_id.invalid'), 403)
end
user.user_profile.update(featured_topic_id: topic.id)
render json: success_json
end

View File

@ -546,6 +546,10 @@ en:
same_as_password: "is the same as your password."
ip_address:
signup_not_allowed: "Signup is not allowed from this account."
user_profile:
attributes:
featured_topic_id:
invalid: "This topic cannot be featured on your profile."
user_email:
attributes:
user_id:

View File

@ -129,6 +129,7 @@ module UserGuardian
end
def can_feature_topic?(user, topic)
return false if topic.nil?
return false if !SiteSetting.allow_featured_topic_on_user_profiles?
return false if !is_me?(user) && !is_staff?
return false if !topic.visible