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