--- .../controllers/admin/pool_families_controller.rb | 11 ++++++++++- src/features/pool_family.feature | 8 ++++++++ 2 files changed, 18 insertions(+), 1 deletions(-)
diff --git a/src/app/controllers/admin/pool_families_controller.rb b/src/app/controllers/admin/pool_families_controller.rb index 42bfb04..ac7dd68 100644 --- a/src/app/controllers/admin/pool_families_controller.rb +++ b/src/app/controllers/admin/pool_families_controller.rb @@ -53,7 +53,16 @@ class Admin::PoolFamiliesController < ApplicationController end
def multi_destroy - PoolFamily.destroy(params[:pool_family_selected]) + default_pool_family = PoolFamily.default + PoolFamily.find(params[:pool_family_selected]).each do |pool_family| + # Don't allow deleting the default PoolFamily + if pool_family == default_pool_family + flash[:notice] = "The default pool family cannot be deleted" + else + # TODO - Once PoolFamily supports permissions, this should have a permissions check on this + pool_family.destroy + end + end redirect_to admin_pool_families_path end
diff --git a/src/features/pool_family.feature b/src/features/pool_family.feature index 441e927..e37f22e 100644 --- a/src/features/pool_family.feature +++ b/src/features/pool_family.feature @@ -44,3 +44,11 @@ Feature: Pool Families And I check "poolfamily1" pool family And I press "Delete" Then there should not exist a pool family named "poolfamily1" + + Scenario: Disallow deletion of default pool family + Given I am on the admin pool families page + Then I should see "default" + When I check "default" pool family + And I press "Delete" + Then I should see "The default pool family cannot be deleted" + Then I should see "default"