From fa85583c968969a5a54e8e3d18945d8edce6e2dc Mon Sep 17 00:00:00 2001 From: Go MAEDA Date: Wed, 27 Dec 2023 08:07:22 +0000 Subject: [PATCH] Optimize users visibility check (#39857). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Patch by Pavel Rosický. git-svn-id: https://svn.redmine.org/redmine/trunk@22567 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- app/models/principal.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/principal.rb b/app/models/principal.rb index 4cce97e26..25a79d768 100644 --- a/app/models/principal.rb +++ b/app/models/principal.rb @@ -48,8 +48,8 @@ class Principal < ActiveRecord::Base all else view_all_active = false - if user.memberships.to_a.any? - view_all_active = user.memberships.any? {|m| m.roles.any? {|r| r.users_visibility == 'all'}} + if user.memberships.any? + view_all_active = User.where(id: user.id).joins(memberships: :roles).where("#{Role.table_name}.users_visibility = ?", 'all').any? else view_all_active = user.builtin_role.users_visibility == 'all' end