]> source.dussan.org Git - redmine.git/commitdiff
Locked users should not be displayed in the members box of the project overview page...
authorGo MAEDA <maeda@farend.jp>
Tue, 27 Jul 2021 04:55:08 +0000 (04:55 +0000)
committerGo MAEDA <maeda@farend.jp>
Tue, 27 Jul 2021 04:55:08 +0000 (04:55 +0000)
Patch by Mizuki ISHIKAWA.

git-svn-id: http://svn.redmine.org/redmine/trunk@21090 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/models/project.rb
test/unit/project_test.rb

index 0afb4bdda040e97f00e5977f7952a7373e5c5b07..4d5e3c0513bb202c1edfd37f7adcc096ed0f0588 100644 (file)
@@ -550,7 +550,7 @@ class Project < ActiveRecord::Base
 
   # Returns a hash of project users/groups grouped by role
   def principals_by_role
-    memberships.includes(:principal, :roles).inject({}) do |h, m|
+    memberships.active.includes(:principal, :roles).inject({}) do |h, m|
       m.roles.each do |r|
         h[r] ||= []
         h[r] << m.principal
index 2c23feb83300147642238c45c5649b905c0c8992..0862f9d9cd4c83601c5540995ba54a45ac98770b 100644 (file)
@@ -475,6 +475,16 @@ class ProjectTest < ActiveSupport::TestCase
     assert principals_by_role[role].include?(group)
   end
 
+  def test_principals_by_role_should_only_return_active_users
+    #group = Group.find(10)
+    #Member.create!(:principal => group, :project_id => 1, :role_ids => [1])
+
+    principals_by_role = Project.find(1).principals_by_role
+    locked_user = User.find(5)
+    assert Project.find(1).memberships.map(&:principal).include?(locked_user)
+    assert_not principals_by_role.values.flatten.include?(locked_user)
+  end
+
   def test_rolled_up_trackers
     parent = Project.find(1)
     parent.trackers = Tracker.find([1, 2])