From 08d67eba2f9c5e128e9da81a22a10e9fb1a60090 Mon Sep 17 00:00:00 2001 From: Barbara Slawinska Date: Thu, 31 Aug 2023 10:25:14 +0100 Subject: [PATCH] Remove the ability for users to create new news articles Users should still be able to edit existing documents. We want to reduce publishing news articles to zero, so that we can eventually retire content publisher. --- app/models/user.rb | 1 + app/views/documents/index.html.erb | 14 ++++++++------ spec/features/formats/news_article_spec.rb | 5 +++++ spec/features/formats/publication_spec.rb | 5 +++++ spec/features/workflow/create_document_spec.rb | 5 +++++ 5 files changed, 24 insertions(+), 6 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index e1a43691e8..6f827f4a5c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -7,6 +7,7 @@ class User < ApplicationRecord MANAGING_EDITOR_PERMISSION = "managing_editor".freeze ACCESS_LIMIT_OVERRIDE_PERMISSION = "access_limit_override".freeze MANAGE_LIVE_HISTORY_MODE = "manage_live_history_mode".freeze + CREATE_NEW_DOCUMENT_PERMISSION = "create_new_document".freeze def can_access?(edition) return true unless edition.access_limit diff --git a/app/views/documents/index.html.erb b/app/views/documents/index.html.erb index d9878d1bc5..48880b0aa2 100644 --- a/app/views/documents/index.html.erb +++ b/app/views/documents/index.html.erb @@ -1,11 +1,13 @@ <% content_for :title, t("documents.index.title") %> -<% content_for :title_side, render("govuk_publishing_components/components/button", { - text: "Create new document", - href: new_document_path, - margin_bottom: true, - data_attributes: { gtm: "new-document" } -}) %> +<% if current_user.has_permission?(User::CREATE_NEW_DOCUMENT_PERMISSION) %> + <% content_for :title_side, render("govuk_publishing_components/components/button", { + text: "Create new document", + href: new_document_path, + margin_bottom: true, + data_attributes: { gtm: "new-document" } + }) %> +<% end %>
diff --git a/spec/features/formats/news_article_spec.rb b/spec/features/formats/news_article_spec.rb index 1d9937c5c9..a92763165e 100644 --- a/spec/features/formats/news_article_spec.rb +++ b/spec/features/formats/news_article_spec.rb @@ -2,11 +2,16 @@ include TopicsHelper scenario do + when_i_have_the_create_new_document_permission when_i_choose_this_document_type and_i_fill_in_the_form_fields then_the_document_should_be_previewable end + def when_i_have_the_create_new_document_permission + current_user.update(permissions: [User::CREATE_NEW_DOCUMENT_PERMISSION]) + end + def when_i_choose_this_document_type visit root_path click_on "Create new document" diff --git a/spec/features/formats/publication_spec.rb b/spec/features/formats/publication_spec.rb index 44bac91f94..1b6c909616 100644 --- a/spec/features/formats/publication_spec.rb +++ b/spec/features/formats/publication_spec.rb @@ -1,10 +1,15 @@ RSpec.describe "Publication format" do scenario do + when_i_have_the_create_new_document_permission when_i_choose_this_document_type and_i_fill_in_the_form_fields then_the_document_should_be_previewable end + def when_i_have_the_create_new_document_permission + current_user.update(permissions: [User::CREATE_NEW_DOCUMENT_PERMISSION, User::PRE_RELEASE_FEATURES_PERMISSION]) + end + def when_i_choose_this_document_type visit root_path click_on "Create new document" diff --git a/spec/features/workflow/create_document_spec.rb b/spec/features/workflow/create_document_spec.rb index 27121277f2..b5c994c887 100644 --- a/spec/features/workflow/create_document_spec.rb +++ b/spec/features/workflow/create_document_spec.rb @@ -1,5 +1,6 @@ RSpec.feature "Create a document" do scenario do + when_i_have_the_create_new_document_permission given_i_am_on_the_home_page when_i_click_to_create_a_document and_i_select_a_supertype @@ -9,6 +10,10 @@ and_i_see_the_timeline_entry end + def when_i_have_the_create_new_document_permission + current_user.update(permissions: [User::CREATE_NEW_DOCUMENT_PERMISSION]) + end + def given_i_am_on_the_home_page visit root_path end