From d8df8c8bcb1e57b231b62ec0513c6c31af556a0c 2016-10-20 17:00:04 From: Jean-Philippe Lang Date: 2016-10-20 17:00:04 Subject: [PATCH] Role#copy_from should copy managed roles. git-svn-id: http://svn.redmine.org/redmine/trunk@15913 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/models/role.rb b/app/models/role.rb index c77412e..8b4dbde 100644 --- a/app/models/role.rb +++ b/app/models/role.rb @@ -109,6 +109,7 @@ class Role < ActiveRecord::Base role = arg.is_a?(Role) ? arg : Role.find_by_id(arg.to_s) self.attributes = role.attributes.dup.except("id", "name", "position", "builtin", "permissions") self.permissions = role.permissions.dup + self.managed_role_ids = role.managed_role_ids.dup self end diff --git a/test/functional/roles_controller_test.rb b/test/functional/roles_controller_test.rb index 88bb468..c6f19b8 100644 --- a/test/functional/roles_controller_test.rb +++ b/test/functional/roles_controller_test.rb @@ -129,7 +129,7 @@ class RolesControllerTest < Redmine::ControllerTest assert_response 302 end assert_equal false, role.all_roles_managed - assert_equal [2, 3], role.managed_role_ids + assert_equal [2, 3], role.managed_role_ids.sort end def test_edit diff --git a/test/unit/role_test.rb b/test/unit/role_test.rb index a043982..092df32 100644 --- a/test/unit/role_test.rb +++ b/test/unit/role_test.rb @@ -45,6 +45,13 @@ class RoleTest < ActiveSupport::TestCase assert copy.save end + def test_copy_from_should_copy_managed_roles + orig = Role.generate!(:all_roles_managed => false, :managed_role_ids => [2, 3]) + role = Role.new + role.copy_from orig + assert_equal [2, 3], role.managed_role_ids.sort + end + def test_copy_workflows source = Role.find(1) rule_count = source.workflow_rules.count