diff --git a/app/views/admin/pages/_form.html.erb b/app/views/admin/pages/_form.html.erb index c89cfe1de..906c9ecea 100644 --- a/app/views/admin/pages/_form.html.erb +++ b/app/views/admin/pages/_form.html.erb @@ -74,23 +74,25 @@ <%= render partial: "landing_page_modal", locals: { page: @landing_page } %> <% end %> -
-

- <%= link_to "Feature Flag", "/admin/feature_flags" %> - "> - <%= FeatureFlag.exist?(@page.feature_flag_name) ? "Present" : "Not Present" %> - -
- <% if FeatureFlag.exist?(@page.feature_flag_name) %> - Access to this page is being guarded by the feature flag <%= @page.feature_flag_name %>. - <%= link_to "Modify flag here", "/admin/feature_flags/features/#{@page.feature_flag_name}" %> - <% else %> - Everyone has access. Optionally guard access to this page by creating feature <%= @page.feature_flag_name %> - <%= link_to "here", "/admin/feature_flags/features" %> - <% end %> -
-

-
+ <% if current_user.has_role?(:tech_admin) %> +
+

+ <%= link_to "Feature Flag", "/admin/feature_flags" %> + "> + <%= FeatureFlag.exist?(@page.feature_flag_name) ? "Present" : "Not Present" %> + +
+ <% if FeatureFlag.exist?(@page.feature_flag_name) %> + Access to this page is being guarded by the feature flag <%= @page.feature_flag_name %>. + <%= link_to "Modify flag here", "/admin/feature_flags/features/#{@page.feature_flag_name}" %> + <% else %> + Everyone has access. Optionally guard access to this page by creating feature <%= @page.feature_flag_name %> + <%= link_to "here", "/admin/feature_flags/features" %> + <% end %> +
+

+
+ <% end %> <%= form.submit class: "crayons-btn" %> <% end %> diff --git a/spec/requests/admin/pages_spec.rb b/spec/requests/admin/pages_spec.rb index 0550afcde..4606b8538 100644 --- a/spec/requests/admin/pages_spec.rb +++ b/spec/requests/admin/pages_spec.rb @@ -5,4 +5,19 @@ RSpec.describe "/admin/customization/pages", type: :request do it_behaves_like "an InternalPolicy dependant request", Page do let(:request) { get admin_pages_path } end + + describe "when managing feature flags" do + it "allows tech admins to manage the feature flag for a page" do + user = create(:user, :admin, :tech_admin) + sign_in user + get new_admin_page_path + expect(response.body).to include("Feature Flag") + end + + it "does not allow non tech admins to manage the feature flag for a page" do + sign_in create(:user, :admin) + get new_admin_page_path + expect(response.body).not_to include("Feature Flag") + end + end end