summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Derichs <pderichs@gitlab.com>2019-04-11 17:29:03 +0200
committerPatrick Derichs <pderichs@gitlab.com>2019-04-11 19:14:08 +0200
commit4d20a399376ee31893d78a719b21b550b9bf6091 (patch)
tree13ee129ec8ca788eb06c67557d5f93758ee82ddf
parent1126b60a86ead5d3dbbf8f697f2d2439713ed435 (diff)
downloadgitlab-ce-cache-max-user-access-project-team.tar.gz
-rw-r--r--app/models/project_team.rb6
-rw-r--r--spec/models/project_team_spec.rb2
2 files changed, 4 insertions, 4 deletions
diff --git a/app/models/project_team.rb b/app/models/project_team.rb
index 820d739fd45..c2154141b1f 100644
--- a/app/models/project_team.rb
+++ b/app/models/project_team.rb
@@ -7,7 +7,7 @@ class ProjectTeam
def initialize(project)
@project = project
- @cache_max_member_access_by_user = {}
+ @cache_max_member_access = {}
end
def add_guest(user, current_user: nil)
@@ -176,7 +176,7 @@ class ProjectTeam
#
# Returns a Hash mapping user ID -> maximum access level.
def max_member_access_for_user_ids(user_ids)
- unknown_user_ids = user_ids.reject { |id| @cache_max_member_access_by_user.key?(id) }
+ unknown_user_ids = user_ids.reject { |id| @cache_max_member_access.key?(id) }
unknown_access_values = max_member_access_for_resource_ids(User, unknown_user_ids, project.id) do |user_ids|
project.project_authorizations
@@ -185,7 +185,7 @@ class ProjectTeam
.maximum(:access_level)
end
- @cache_max_member_access_by_user.merge!(unknown_access_values)
+ @cache_max_member_access.merge!(unknown_access_values)
end
def max_member_access(user_id)
diff --git a/spec/models/project_team_spec.rb b/spec/models/project_team_spec.rb
index b5634e5f439..f2c11f49fb6 100644
--- a/spec/models/project_team_spec.rb
+++ b/spec/models/project_team_spec.rb
@@ -37,7 +37,7 @@ describe ProjectTeam do
end
describe '#maintainer?' do
- it 'does not produce n+1 queries' do
+ it 'caches results' do
3.times { project.add_maintainer(create(:user)) }
queries = ActiveRecord::QueryRecorder.new { project.team.maintainer?(maintainer) }