Don't Allow Users To React to Unpublished Posts (#5969)

This commit is contained in:
Mohamed ABDELLANI 2020-02-19 19:41:35 +01:00 committed by GitHub
parent 5e677daac1
commit e351227bb0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 23 deletions

View file

@ -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)

View file

@ -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? %>