diff --git a/app/domain/sac_cas.rb b/app/domain/sac_cas.rb index 4f358add3..5803009be 100644 --- a/app/domain/sac_cas.rb +++ b/app/domain/sac_cas.rb @@ -78,6 +78,8 @@ module SacCas ::Group::SektionsMitglieder::MitgliedZusatzsektion, ::Group::SektionsNeuanmeldungenNv::Neuanmeldung, ::Group::SektionsNeuanmeldungenNv::NeuanmeldungZusatzsektion, + ::Group::SektionsNeuanmeldungenSektion::Neuanmeldung, + ::Group::SektionsNeuanmeldungenSektion::NeuanmeldungZusatzsektion, ::Group::AboMagazin::Abonnent, ::Group::AboMagazin::Neuanmeldung, ::Group::AboMagazin::Gratisabonnent, diff --git a/spec/abilities/sac_cas/role_ability_spec.rb b/spec/abilities/sac_cas/role_ability_spec.rb index 03cf0ab7f..4b3c33438 100644 --- a/spec/abilities/sac_cas/role_ability_spec.rb +++ b/spec/abilities/sac_cas/role_ability_spec.rb @@ -64,4 +64,46 @@ def set_termination_by_section_only(role, value) end end end + + describe "wizard managed roles" do + { + bluemslisap_mitglieder: [ + ::Group::SektionsMitglieder::Mitglied, + ::Group::SektionsMitglieder::MitgliedZusatzsektion + ], + bluemlisalp_neuanmeldungen_nv: [ + ::Group::SektionsNeuanmeldungenNv::Neuanmeldung, + ::Group::SektionsNeuanmeldungenNv::NeuanmeldungZusatzsektion + ], + bluemlisalp_neuanmeldungen_sektion: [ + ::Group::SektionsNeuanmeldungenSektion::Neuanmeldung, + ::Group::SektionsNeuanmeldungenSektion::NeuanmeldungZusatzsektion + ], + abo_magazine: [ + ::Group::AboMagazin::Abonnent, + ::Group::AboMagazin::Neuanmeldung, + ::Group::AboMagazin::Gratisabonnent + ], + abo_touren_portal: [ + ::Group::AboTourenPortal::Abonnent, + ::Group::AboTourenPortal::Neuanmeldung + ] + }.each do |group_key, role_types| + let(:group) do + if group_key == :abo_touren_portal + Fabricate(Group::AboTourenPortal.sti_name, parent: groups(:abos)) + else + groups(group_key) + end + end + + role_types.each do |role_type| + let(:role) { Fabricate(role_type.sti_name, group: group) } + + it "cannot destroy #{role_type}" do + expect(ability).not_to be_able_to(:destroy, role) + end + end + end + end end