Allow explicitly setting no permissions on role creation

This commit is contained in:
Mir Bhatia
2026-05-20 11:24:00 +02:00
parent 51381443e5
commit 9937d62cad
2 changed files with 8 additions and 6 deletions
+4 -2
View File
@@ -38,8 +38,10 @@ module Roles
end
end
def set_default_attributes(*)
model.permissions = ProjectRole.non_member.permissions if model.permissions.blank? && model.is_a?(ProjectRole)
def set_default_attributes(params)
if model.permissions.blank? && model.is_a?(ProjectRole) && !params.key?(:permissions)
model.permissions = ProjectRole.non_member.permissions
end
end
end
end
@@ -88,11 +88,11 @@ RSpec.describe Roles::SetAttributesService, type: :model do
expect(model_instance.permissions).to match_array(OpenProject::AccessControl.public_permissions.map(&:name) + permissions)
end
context "when no permissions are given" do
let(:permissions) { [] }
context "when permissions are explicitly set to empty" do
let(:permissions) { [""] }
it "assigns the permissions the non member role has" do
expect(model_instance.permissions).to match_array(ProjectRole.non_member.permissions) # public permissions are included via the factory
it "assigns only the public permissions" do
expect(model_instance.permissions).to match_array(OpenProject::AccessControl.public_permissions.map(&:name))
end
end
end