diff --git a/app/views/account/applications/index.html.erb b/app/views/account/applications/index.html.erb
index f5b82ac7d..69dbf366a 100644
--- a/app/views/account/applications/index.html.erb
+++ b/app/views/account/applications/index.html.erb
@@ -36,10 +36,12 @@
<% end %>
- <%= link_to delete_account_application_signin_permission_path(application),
- class: "govuk-button govuk-button--warning govuk-!-margin-0",
- data: { module: "govuk-button" } do %>
- Remove access to <%= application.name %>
+ <% if policy([:account, application]).remove_signin_permission? %>
+ <%= link_to delete_account_application_signin_permission_path(application),
+ class: "govuk-button govuk-button--warning govuk-!-margin-0",
+ data: { module: "govuk-button" } do %>
+ Remove access to <%= application.name %>
+ <% end %>
<% end %>
|
diff --git a/test/controllers/account/applications_controller_test.rb b/test/controllers/account/applications_controller_test.rb
index be82c30c9..8833a3ec5 100644
--- a/test/controllers/account/applications_controller_test.rb
+++ b/test/controllers/account/applications_controller_test.rb
@@ -34,6 +34,19 @@ class Account::ApplicationsControllerTest < ActionController::TestCase
assert_select "tr td", text: "app-name"
assert_select "form[action='#{account_application_signin_permission_path(application)}']", count: 0
end
+
+ should "not display the button to remove access to an application" do
+ application = create(:application, name: "app-name")
+ application.signin_permission.update!(delegatable: false)
+ user = create(:organisation_admin_user, with_signin_permissions_for: [application])
+
+ sign_in user
+
+ get :index
+
+ assert_select "tr td", text: "app-name"
+ assert_select "a[href='#{delete_account_application_signin_permission_path(application)}']", count: 0
+ end
end
end
end