diff --git a/app/logical/post_query_builder.rb b/app/logical/post_query_builder.rb index 75ba7f592..b1a24af42 100644 --- a/app/logical/post_query_builder.rb +++ b/app/logical/post_query_builder.rb @@ -400,12 +400,6 @@ class PostQueryBuilder if q[:ordfav].present? user_id = q[:ordfav].to_i - user = User.find(user_id) - - if user.hide_favorites? - raise User::PrivilegeError.new - end - relation = relation.joins("INNER JOIN favorites ON favorites.post_id = posts.id") relation = relation.where("favorites.user_id % 100 = ? and favorites.user_id = ?", user_id % 100, user_id).order("favorites.id DESC") end diff --git a/app/models/tag.rb b/app/models/tag.rb index 5f3a3fdc2..9e1c8cb4d 100644 --- a/app/models/tag.rb +++ b/app/models/tag.rb @@ -617,13 +617,31 @@ class Tag < ApplicationRecord q[:favgroups] << favgroup_id when "-fav" + favuser = User.find_by_name(g2) + + if favuser.hide_favorites? + raise User::PrivilegeError.new + end + q[:tags][:exclude] << "fav:#{User.name_to_id(g2)}" when "fav" + favuser = User.find_by_name(g2) + + if favuser.hide_favorites? + raise User::PrivilegeError.new + end + q[:tags][:related] << "fav:#{User.name_to_id(g2)}" when "ordfav" user_id = User.name_to_id(g2) + favuser = User.find(user_id) + + if favuser.hide_favorites? + raise User::PrivilegeError.new + end + q[:tags][:related] << "fav:#{user_id}" q[:ordfav] = user_id