diff --git a/app/views/debates/_actions.html.erb b/app/views/debates/_actions.html.erb
index 5a51749dc..db9821ad0 100644
--- a/app/views/debates/_actions.html.erb
+++ b/app/views/debates/_actions.html.erb
@@ -1,7 +1,9 @@
-<%= link_to t("admin.actions.hide").capitalize, hide_moderation_debate_path(debate),
- method: :put, remote: true, data: { confirm: t('admin.actions.confirm') } %>
+<% if can? :hide, debate %>
+ <%= link_to t("admin.actions.hide").capitalize, hide_moderation_debate_path(debate),
+ method: :put, remote: true, data: { confirm: t('admin.actions.confirm') } %>
+<% end %>
-<% unless debate.author.hidden? %>
+<% if can? :hide, debate.author %>
|
<%= link_to t("admin.actions.hide_author").capitalize, hide_moderation_user_path(debate.author_id),
method: :put, data: { confirm: t('admin.actions.confirm') } %>
diff --git a/spec/features/moderation/debates_spec.rb b/spec/features/moderation/debates_spec.rb
index bb2b58c24..1ea3101e0 100644
--- a/spec/features/moderation/debates_spec.rb
+++ b/spec/features/moderation/debates_spec.rb
@@ -23,6 +23,19 @@ feature 'Moderate debates' do
expect(page).to have_css('.debate', count: 0)
end
+ scenario 'Can not hide own debate' do
+ moderator = create(:moderator)
+ debate = create(:debate, author: moderator.user)
+
+ login_as(moderator.user)
+ visit debate_path(debate)
+
+ within("#debate_#{debate.id}") do
+ expect(page).to_not have_link('Hide')
+ expect(page).to_not have_link('Block author')
+ end
+ end
+
feature '/moderation/ menu' do
background do