1
0
mirror of https://github.com/meineerde/redmine.git synced 2026-01-31 19:47:14 +00:00

Cannot add a user to a group if the group is a member without roles in a certain project (#38443).

Patch by Go MAEDA.


git-svn-id: https://svn.redmine.org/redmine/trunk@22180 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Go MAEDA 2023-04-13 15:21:43 +00:00
parent 2d7d01e633
commit a48700d58b
2 changed files with 14 additions and 0 deletions

View File

@ -80,6 +80,8 @@ class Group < Principal
def user_added(user)
members.preload(:member_roles).each do |member|
next if member.project_id.nil?
# skip if the group is a member without roles in the project
next if member.member_roles.empty?
user_member =
Member.find_or_initialize_by(:project_id => member.project_id, :user_id => user.id)

View File

@ -177,4 +177,16 @@ class GroupTest < ActiveSupport::TestCase
assert_equal %w(A B), Group.sorted.to_a.map(&:name)
end
def test_user_added_should_not_fail_when_group_role_is_empty
group = Group.find(11)
project = Project.first
user = User.find(9)
m = Member.create!(:principal => group, :project => project, :role_ids => [1])
MemberRole.where(:member_id => m.id).delete_all
assert_nothing_raised {group.users << user}
assert group.users.include?(user)
end
end