diff --git a/app/models/post.rb b/app/models/post.rb
index 4e3300515..a4bfc70e8 100644
--- a/app/models/post.rb
+++ b/app/models/post.rb
@@ -762,12 +762,11 @@ class Post < ApplicationRecord
update_column(:fav_count, fav_count)
end
- def favorited_by?(user_id = CurrentUser.id)
- fav_string.match?(/(?:\A| )fav:#{user_id}(?:\Z| )/)
+ def favorited_by?(user)
+ return false if user.is_anonymous?
+ Favorite.exists?(post: self, user: user)
end
- alias is_favorited? favorited_by?
-
def append_user_to_fav_string(user_id)
update_column(:fav_string, (fav_string + " fav:#{user_id}").strip)
clean_fav_string! if clean_fav_string?
diff --git a/app/policies/post_policy.rb b/app/policies/post_policy.rb
index 316e7034b..3bfa5d05c 100644
--- a/app/policies/post_policy.rb
+++ b/app/policies/post_policy.rb
@@ -88,11 +88,11 @@ class PostPolicy < ApplicationPolicy
def api_attributes
attributes = super
- attributes += [:has_large, :has_visible_children, :is_favorited?]
+ attributes += [:has_large, :has_visible_children]
attributes += TagCategory.categories.map {|x| "tag_string_#{x}".to_sym}
attributes += [:file_url, :large_file_url, :preview_file_url] if visible?
attributes -= [:id, :md5, :file_ext] if !visible?
- attributes -= [:fav_string] if !user.is_moderator?
+ attributes -= [:fav_string]
attributes
end
diff --git a/app/presenters/post_presenter.rb b/app/presenters/post_presenter.rb
index 60d6ba4b1..6135e1020 100644
--- a/app/presenters/post_presenter.rb
+++ b/app/presenters/post_presenter.rb
@@ -131,7 +131,6 @@ class PostPresenter
"data-source" => post.source,
"data-uploader-id" => post.uploader_id,
"data-normalized-source" => post.normalized_source,
- "data-is-favorited" => post.favorited_by?(CurrentUser.user.id)
}
if post.visible?
diff --git a/app/views/posts/partials/index/_preview.html.erb b/app/views/posts/partials/index/_preview.html.erb
index a9f00ebb1..0e03f2613 100644
--- a/app/views/posts/partials/index/_preview.html.erb
+++ b/app/views/posts/partials/index/_preview.html.erb
@@ -38,11 +38,7 @@
<%= link_to recommended_posts_path(search: { post_id: post.id }), class: "more-recommended-posts", "data-post-id": post.id do %>
<%= post.fav_count %>
- <% if post.favorited_by?(CurrentUser.id) %>
-
- <% else %>
-
- <% end %>
+
more ยป
<% end %>
diff --git a/app/views/posts/partials/show/_options.html.erb b/app/views/posts/partials/show/_options.html.erb
index d9d2949c8..7190bdf4c 100644
--- a/app/views/posts/partials/show/_options.html.erb
+++ b/app/views/posts/partials/show/_options.html.erb
@@ -23,10 +23,10 @@
<% if policy(Favorite).create? %>