Commit f65eb0e8 authored by Bob Van Landuyt's avatar Bob Van Landuyt

Prevent create|destroy design on archived projects

Don't allow modification of designs when a project is archived
parent 33dad3f8
...@@ -11,6 +11,7 @@ module EE ...@@ -11,6 +11,7 @@ module EE
vulnerability_feedback vulnerability_feedback
license_management license_management
feature_flag feature_flag
design
].freeze ].freeze
prepended do prepended do
......
...@@ -13,7 +13,7 @@ describe DesignManagement::DesignPolicy do ...@@ -13,7 +13,7 @@ describe DesignManagement::DesignPolicy do
let(:issue) { create(:issue, project: project) } let(:issue) { create(:issue, project: project) }
let(:design) { create(:design, issue: issue) } let(:design) { create(:design, issue: issue) }
subject { described_class.new(current_user, design) } subject(:design_policy) { described_class.new(current_user, design) }
shared_examples_for "design abilities not available" do shared_examples_for "design abilities not available" do
context "for owners" do context "for owners" do
...@@ -149,5 +149,18 @@ describe DesignManagement::DesignPolicy do ...@@ -149,5 +149,18 @@ describe DesignManagement::DesignPolicy do
it { is_expected.to be_disallowed(*design_abilities) } it { is_expected.to be_disallowed(*design_abilities) }
end end
end end
context "when the project is archived" do
let(:current_user) { owner }
before do
project.update!(archived: true)
end
it "only allows reading designs" do
expect(design_policy).to be_allowed(:read_design)
expect(design_policy).to be_disallowed(:create_design, :destroy_design)
end
end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment