diff options
author | Rémy Coutable <remy@rymai.me> | 2016-06-27 16:20:57 +0200 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2016-07-01 17:44:46 +0200 |
commit | bd78f5733ca546bf940438b84aefa2fa3abacb36 (patch) | |
tree | 9d9ac648a594623489e628e025bde48f7ef2b2f9 /app/models/group.rb | |
parent | 557ca2b31ff503b36a4b65af2641fcd0f5682d5b (diff) | |
download | gitlab-ce-bd78f5733ca546bf940438b84aefa2fa3abacb36.tar.gz |
Exclude requesters from Project#members, Group#members and User#membersexplicit-requesters-scope
And create new Project#requesters, Group#requesters scopes.
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'app/models/group.rb')
-rw-r--r-- | app/models/group.rb | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/app/models/group.rb b/app/models/group.rb index c70c719e338..a8be7004ee8 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -6,15 +6,16 @@ class Group < Namespace include AccessRequestable include Referable - has_many :group_members, dependent: :destroy, as: :source, class_name: 'GroupMember' + has_many :group_members, -> { where(requested_at: nil) }, dependent: :destroy, as: :source, class_name: 'GroupMember' alias_method :members, :group_members - has_many :users, -> { where(members: { requested_at: nil }) }, through: :group_members - + has_many :users, through: :group_members has_many :owners, - -> { where(members: { requested_at: nil, access_level: Gitlab::Access::OWNER }) }, + -> { where(members: { access_level: Gitlab::Access::OWNER }) }, through: :group_members, source: :user + has_many :requesters, -> { where.not(requested_at: nil) }, dependent: :destroy, as: :source, class_name: 'GroupMember' + has_many :project_group_links, dependent: :destroy has_many :shared_projects, through: :project_group_links, source: :project has_many :notification_settings, dependent: :destroy, as: :source |