diff --git a/groups/app/models/member.rb b/groups/app/models/member.rb index b16f6a8ea..6d94aca9b 100644 --- a/groups/app/models/member.rb +++ b/groups/app/models/member.rb @@ -50,7 +50,9 @@ class Member < ActiveRecord::Base if principal.is_a? Group Member.delete_all "inherited_from = #{id}" principal.users.each do |user| - Member.create! :project => project, :role => role, :principal => user, :inherited_from => id + inherited = Member.new :project => project, :role => role, :principal => user + inherited.inherited_from = id + inherited.save! end end end diff --git a/groups/app/models/user.rb b/groups/app/models/user.rb index ecc4b569c..3743fcb3f 100644 --- a/groups/app/models/user.rb +++ b/groups/app/models/user.rb @@ -85,7 +85,10 @@ class User < ActiveRecord::Base Member.delete_all "principal_type = 'User' AND principal_id = #{id} AND inherited_from IS NOT NULL" unless group.nil? group.memberships.each do |m| - Member.create! :project => m.project, :role => m.role, :principal => self, :inherited_from => m.id + inherited = Member.new :project => m.project, :role => m.role, :principal => self + # protected attribute + inherited.inherited_from = m.id + inherited.save! end end end