Skip to content

Commit

Permalink
Prevent edits from additional wizard managed roles (#1405) (#1465)
Browse files Browse the repository at this point in the history
  • Loading branch information
amaierhofer authored Jan 3, 2025
1 parent 6bc9dfe commit 3b95a17
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 0 deletions.
2 changes: 2 additions & 0 deletions app/domain/sac_cas.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
42 changes: 42 additions & 0 deletions spec/abilities/sac_cas/role_ability_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit 3b95a17

Please sign in to comment.