Don't Allow Users To React to Unpublished Posts (#5969)
This commit is contained in:
parent
5e677daac1
commit
e351227bb0
2 changed files with 30 additions and 23 deletions
|
|
@ -48,26 +48,31 @@ class ReactionsController < ApplicationController
|
|||
reactable_type: params[:reactable_type],
|
||||
category: category,
|
||||
).first
|
||||
result = ""
|
||||
if reaction
|
||||
current_user.touch
|
||||
reaction.destroy
|
||||
Moderator::SinkArticles.call(reaction.user_id) if vomit_reaction_on_user?(reaction)
|
||||
Notification.send_reaction_notification_without_delay(reaction, reaction.reactable.user)
|
||||
Notification.send_reaction_notification_without_delay(reaction, reaction.reactable.organization) if organization_article?(reaction)
|
||||
@result = "destroy"
|
||||
result = "destroy"
|
||||
else
|
||||
reaction = Reaction.create!(
|
||||
reaction = Reaction.new(
|
||||
user_id: current_user.id,
|
||||
reactable_id: params[:reactable_id],
|
||||
reactable_type: params[:reactable_type],
|
||||
category: category,
|
||||
)
|
||||
@result = "create"
|
||||
Moderator::SinkArticles.call(reaction.user_id) if vomit_reaction_on_user?(reaction)
|
||||
Notification.send_reaction_notification(reaction, reaction.reactable.user)
|
||||
Notification.send_reaction_notification(reaction, reaction.reactable.organization) if organization_article?(reaction)
|
||||
if reaction.save
|
||||
result = "create"
|
||||
Moderator::SinkArticles.call(reaction.user_id) if vomit_reaction_on_user?(reaction)
|
||||
Notification.send_reaction_notification(reaction, reaction.reactable.user)
|
||||
Notification.send_reaction_notification(reaction, reaction.reactable.organization) if organization_article?(reaction)
|
||||
else
|
||||
return render json: { error: reaction.errors.full_messages.join(", "), status: 422 }, status: :unprocessable_entity
|
||||
end
|
||||
end
|
||||
render json: { result: @result, category: category }
|
||||
render json: { result: result, category: category }
|
||||
end
|
||||
|
||||
def cached_user_positive_reactions(user)
|
||||
|
|
|
|||
|
|
@ -1,20 +1,22 @@
|
|||
<div class="article-actions" id="article-reaction-actions">
|
||||
<button id="reaction-butt-like" class="article-reaction-butt like-reaction-button" data-category="like" alt="heart-emoji" title="heart">
|
||||
<img alt="heart" src="<%= asset_path("emoji/emoji-one-heart.png") %>" /><span class="reaction-number" id="reaction-number-like"></span>
|
||||
</button>
|
||||
<button id="reaction-butt-unicorn" class="article-reaction-butt unicorn-reaction-button" data-category="unicorn" alt="unicorn-emoji" title="unicorn">
|
||||
<img alt="unicorn" src="<%= asset_path("emoji/emoji-one-unicorn.png") %>" /><span class="reaction-number" id="reaction-number-unicorn"></span>
|
||||
</button>
|
||||
<button id="reaction-butt-readinglist" class="article-reaction-butt readinglist-reaction-button" data-category="readinglist" alt="unicorn-emoji" title="reading list">
|
||||
<img alt="reading list" src="<%= asset_path("emoji/emoji-one-bookmark.png") %>" /><span class="reaction-number" id="reaction-number-readinglist"></span>
|
||||
</button>
|
||||
<a class="article-actions-tweet-button"
|
||||
id="article-actions-tweet-button"
|
||||
rel="noopener"
|
||||
target='_blank'
|
||||
href='https://twitter.com/intent/tweet?text="<%= u @article.title.strip %>" by <%= @article.user.twitter_username ? "@" + @article.user.twitter_username : @article.user.name %> %23DEVcommunity https://dev.to<%= @article.path %>'>
|
||||
<img src="<%= asset_path("twitter.svg") %>" alt="twitter logo">
|
||||
</a>
|
||||
<% if @article.published? %>
|
||||
<button id="reaction-butt-like" class="article-reaction-butt like-reaction-button" data-category="like" alt="heart-emoji" title="heart">
|
||||
<img alt="heart" src="<%= asset_path("emoji/emoji-one-heart.png") %>" /><span class="reaction-number" id="reaction-number-like"></span>
|
||||
</button>
|
||||
<button id="reaction-butt-unicorn" class="article-reaction-butt unicorn-reaction-button" data-category="unicorn" alt="unicorn-emoji" title="unicorn">
|
||||
<img alt="unicorn" src="<%= asset_path("emoji/emoji-one-unicorn.png") %>" /><span class="reaction-number" id="reaction-number-unicorn"></span>
|
||||
</button>
|
||||
<button id="reaction-butt-readinglist" class="article-reaction-butt readinglist-reaction-button" data-category="readinglist" alt="unicorn-emoji" title="reading list">
|
||||
<img alt="reading list" src="<%= asset_path("emoji/emoji-one-bookmark.png") %>" /><span class="reaction-number" id="reaction-number-readinglist"></span>
|
||||
</button>
|
||||
<a class="article-actions-tweet-button"
|
||||
id="article-actions-tweet-button"
|
||||
rel="noopener"
|
||||
target='_blank'
|
||||
href='https://twitter.com/intent/tweet?text="<%= u @article.title.strip %>" by <%= @article.user.twitter_username ? "@" + @article.user.twitter_username : @article.user.name %> %23DEVcommunity https://dev.to<%= @article.path %>'>
|
||||
<img src="<%= asset_path("twitter.svg") %>" alt="twitter logo">
|
||||
</a>
|
||||
<% end %>
|
||||
<a class="article-actions-comments-count" href="#comments" id="jump-to-comments">
|
||||
DISCUSS
|
||||
<% if @article.comments_count.positive? %>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue