summaryrefslogtreecommitdiff
path: root/app/models/member.rb
diff options
context:
space:
mode:
authorPaco Guzman <pacoguzmanp@gmail.com>2016-08-09 09:38:48 +0200
committerPaco Guzman <pacoguzmanp@gmail.com>2016-08-09 11:39:45 +0200
commit9b2ad62a069961391ea7492a51eaad88ad2fce46 (patch)
treee2fb0daa028721e9a6c03daefcd75962a4357864 /app/models/member.rb
parent51f40a919a6686203ffc638a1c82e179811959cb (diff)
downloadgitlab-ce-17932-move-to-project-dropdown-bulk-load.tar.gz
Load project members, group members in bulk and cache it17932-move-to-project-dropdown-bulk-load
Diffstat (limited to 'app/models/member.rb')
-rw-r--r--app/models/member.rb5
1 files changed, 5 insertions, 0 deletions
diff --git a/app/models/member.rb b/app/models/member.rb
index 24ab1276ee9..af70120f83d 100644
--- a/app/models/member.rb
+++ b/app/models/member.rb
@@ -29,6 +29,7 @@ class Member < ActiveRecord::Base
scope :invite, -> { where.not(invite_token: nil) }
scope :non_invite, -> { where(invite_token: nil) }
+ scope :non_request, -> { where(requested_at: nil) }
scope :request, -> { where.not(requested_at: nil) }
scope :has_access, -> { where('access_level > 0') }
@@ -53,6 +54,10 @@ class Member < ActiveRecord::Base
default_value_for :notification_level, NotificationSetting.levels[:global]
class << self
+ def access_for_user_id_on_sources(user_id, sources)
+ where(source: sources, user_id: user_id).non_request.has_access.pluck(:source_id, :access_level).to_h
+ end
+
def access_for_user_ids(user_ids)
where(user_id: user_ids).has_access.pluck(:user_id, :access_level).to_h
end