favorites: convert user.hide_favorites? to pundit.

This commit is contained in:
evazion
2020-03-21 22:12:23 -05:00
parent 5bc82bf07b
commit 2445e8b82f
7 changed files with 25 additions and 18 deletions

View File

@@ -852,31 +852,30 @@ class PostQueryBuilder
when "-fav"
favuser = User.find_by_name(g2)
if favuser.hide_favorites?
raise User::PrivilegeError.new
if favuser.nil? || !Pundit.policy!([CurrentUser.user, nil], favuser).can_see_favorites?
raise User::PrivilegeError
end
q[:tags][:exclude] << "fav:#{User.name_to_id(g2)}"
q[:tags][:exclude] << "fav:#{favuser.id}"
when "fav"
favuser = User.find_by_name(g2)
if favuser.hide_favorites?
raise User::PrivilegeError.new
if favuser.nil? || !Pundit.policy!([CurrentUser.user, nil], favuser).can_see_favorites?
raise User::PrivilegeError
end
q[:tags][:related] << "fav:#{User.name_to_id(g2)}"
q[:tags][:related] << "fav:#{favuser.id}"
when "ordfav"
user_id = User.name_to_id(g2)
favuser = User.find(user_id)
favuser = User.find_by_name(g2)
if favuser.hide_favorites?
if favuser.nil? || !Pundit.policy!([CurrentUser.user, nil], favuser).can_see_favorites?
raise User::PrivilegeError.new
end
q[:tags][:related] << "fav:#{user_id}"
q[:ordfav] = user_id
q[:tags][:related] << "fav:#{favuser.id}"
q[:ordfav] = favuser.id
when "search"
q[:saved_searches] ||= []

View File

@@ -54,7 +54,7 @@ module RecommenderService
end
if user.present?
raise User::PrivilegeError if user.hide_favorites?
raise User::PrivilegeError unless Pundit.policy!([CurrentUser.user, nil], user).can_see_favorites?
max_recommendations = params.fetch(:max_recommendations, user.favorite_count + 500).to_i.clamp(0, 50000)
recs = RecommenderService.recommend_for_user(user, tags: params[:post_tags_match], limit: max_recommendations)
elsif post.present?