]> source.dussan.org Git - redmine.git/commitdiff
Role#copy_from should copy managed roles.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 20 Oct 2016 17:00:04 +0000 (17:00 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Thu, 20 Oct 2016 17:00:04 +0000 (17:00 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@15913 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/role.rb
test/functional/roles_controller_test.rb
test/unit/role_test.rb

index c77412e88f8fba487f27ff95b293f17a3578d514..8b4dbde869f2421eaf34937a702160a0cc3742de 100644 (file)
@@ -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
 
index 88bb46826a08114509f605762b30edc4ce2c7873..c6f19b87bd7289050c0cf636328c4a638d9632f2 100644 (file)
@@ -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
index a043982557e5084b6334ea0f8b2ddd3236ae8962..092df322ef4c1485d29f8cc1ae5179db77364d67 100644 (file)
@@ -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