diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2011-01-02 11:44:19 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2011-01-02 11:44:19 +0000 |
commit | ded234794e8576e9cfd3bb8b0288f0e6fbe3ca5d (patch) | |
tree | db1022ad96ec7bf4676d7487d433e7731eaeb216 /app/models | |
parent | 119732c3eeabaf30168f7486d366f2efdd4d84af (diff) | |
download | redmine-ded234794e8576e9cfd3bb8b0288f0e6fbe3ca5d.tar.gz redmine-ded234794e8576e9cfd3bb8b0288f0e6fbe3ca5d.zip |
Merged r4615 and r4616 from trunk.
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/branches/1.1-stable@4617 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/project.rb | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 4af77d1d9..891db8b8c 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -740,7 +740,12 @@ class Project < ActiveRecord::Base # Copies members from +project+ def copy_members(project) - project.memberships.each do |member| + # Copy users first, then groups to handle members with inherited and given roles + members_to_copy = [] + members_to_copy += project.memberships.select {|m| m.principal.is_a?(User)} + members_to_copy += project.memberships.select {|m| !m.principal.is_a?(User)} + + members_to_copy.each do |member| new_member = Member.new new_member.attributes = member.attributes.dup.except("id", "project_id", "created_on") # only copy non inherited roles |