]> source.dussan.org Git - redmine.git/commitdiff
Fixed that new role does not have non member permissions as default (#23633).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 30 Aug 2016 21:46:22 +0000 (21:46 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 30 Aug 2016 21:46:22 +0000 (21:46 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@15764 e93f8b46-1217-0410-a6f0-8f06a7374b81

lib/redmine/safe_attributes.rb
test/functional/roles_controller_test.rb

index 363048d29f01e16e39912dfaf558fc1921fc941f..1d2a3d6e1b5575a769420d67bc4dfa55e446eb85 100644 (file)
@@ -74,7 +74,7 @@ module Redmine
     #   # => {'title' => 'My book'}
     def delete_unsafe_attributes(attrs, user=User.current)
       safe = safe_attribute_names(user)
-      attrs.dup.delete_if {|k,v| !safe.include?(k)}
+      attrs.dup.delete_if {|k,v| !safe.include?(k.to_s)}
     end
 
     # Sets attributes from attrs that are safe
index ba26e0c63734014dab506cdd880564f7e846f5b6..ea2ccb018159b858febcc1de6a45d5fe9b6e08c3 100644 (file)
@@ -39,6 +39,18 @@ class RolesControllerTest < Redmine::ControllerTest
     get :new
     assert_response :success
     assert_select 'input[name=?]', 'role[name]'
+    assert_select 'input[name=?]', 'role[permissions][]'
+  end
+
+  def test_new_should_prefill_permissions_with_non_member_permissions
+    role = Role.non_member
+    role.permissions = [:view_issues, :view_documents]
+    role.save!
+
+    get :new
+    assert_response :success
+    assert_equal %w(view_documents view_issues),
+      css_select('input[name="role[permissions][]"][checked=checked]').map {|e| e.attr('value')}.sort
   end
 
   def test_new_with_copy