Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-12-02 09:09:50 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-12-02 09:09:50 +0300
commitd5e4aa5266e94798f1c4a1a83a77fa0354056f0e (patch)
treeb83f32d31052fb1f5b402298b9a7c06ba4077d5f /app
parent408af4d5cf3a3893f8431d4d28821c766ab92bec (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/finders/group_members_finder.rb5
-rw-r--r--app/finders/members_finder.rb9
-rw-r--r--app/graphql/resolvers/group_members_resolver.rb5
-rw-r--r--app/graphql/resolvers/members_resolver.rb4
-rw-r--r--app/graphql/resolvers/project_members_resolver.rb5
-rw-r--r--app/graphql/types/group_member_relation_enum.rb12
-rw-r--r--app/graphql/types/project_member_relation_enum.rb12
-rw-r--r--app/models/alert_management/alert.rb2
-rw-r--r--app/models/dependency_proxy/manifest.rb14
9 files changed, 63 insertions, 5 deletions
diff --git a/app/finders/group_members_finder.rb b/app/finders/group_members_finder.rb
index d334d2d8bf3..2417b1e0771 100644
--- a/app/finders/group_members_finder.rb
+++ b/app/finders/group_members_finder.rb
@@ -1,6 +1,9 @@
# frozen_string_literal: true
class GroupMembersFinder < UnionFinder
+ RELATIONS = %i(direct inherited descendants).freeze
+ DEFAULT_RELATIONS = %i(direct inherited).freeze
+
include CreatedAtFilter
# Params can be any of the following:
@@ -17,7 +20,7 @@ class GroupMembersFinder < UnionFinder
@params = params
end
- def execute(include_relations: [:inherited, :direct])
+ def execute(include_relations: DEFAULT_RELATIONS)
group_members = group_members_list
relations = []
diff --git a/app/finders/members_finder.rb b/app/finders/members_finder.rb
index 013ed03a789..1ff2ad01b63 100644
--- a/app/finders/members_finder.rb
+++ b/app/finders/members_finder.rb
@@ -1,6 +1,9 @@
# frozen_string_literal: true
class MembersFinder
+ RELATIONS = %i(direct inherited descendants invited_groups).freeze
+ DEFAULT_RELATIONS = %i(direct inherited).freeze
+
# Params can be any of the following:
# sort: string
# search: string
@@ -13,7 +16,7 @@ class MembersFinder
@params = params
end
- def execute(include_relations: [:inherited, :direct])
+ def execute(include_relations: DEFAULT_RELATIONS)
members = find_members(include_relations)
filter_members(members)
@@ -56,7 +59,7 @@ class MembersFinder
def group_union_members(include_relations)
[].tap do |members|
members << direct_group_members(include_relations.include?(:descendants)) if group
- members << project_invited_groups_members if include_relations.include?(:invited_groups_members)
+ members << project_invited_groups if include_relations.include?(:invited_groups)
end
end
@@ -66,7 +69,7 @@ class MembersFinder
GroupMembersFinder.new(group).execute(include_relations: requested_relations).non_invite.non_minimal_access # rubocop: disable CodeReuse/Finder
end
- def project_invited_groups_members
+ def project_invited_groups
invited_groups_ids_including_ancestors = Gitlab::ObjectHierarchy
.new(project.invited_groups)
.base_and_ancestors
diff --git a/app/graphql/resolvers/group_members_resolver.rb b/app/graphql/resolvers/group_members_resolver.rb
index d3aa376c29c..fcdf7c01d8b 100644
--- a/app/graphql/resolvers/group_members_resolver.rb
+++ b/app/graphql/resolvers/group_members_resolver.rb
@@ -6,6 +6,11 @@ module Resolvers
authorize :read_group_member
+ argument :relations, [Types::GroupMemberRelationEnum],
+ description: 'Filter members by the given member relations',
+ required: false,
+ default_value: GroupMembersFinder::DEFAULT_RELATIONS
+
private
def preloads
diff --git a/app/graphql/resolvers/members_resolver.rb b/app/graphql/resolvers/members_resolver.rb
index 523642e912f..cf51fd298bd 100644
--- a/app/graphql/resolvers/members_resolver.rb
+++ b/app/graphql/resolvers/members_resolver.rb
@@ -14,7 +14,9 @@ module Resolvers
def resolve_with_lookahead(**args)
authorize!(object)
- apply_lookahead(finder_class.new(object, current_user, params: args).execute)
+ relations = args.delete(:relations)
+
+ apply_lookahead(finder_class.new(object, current_user, params: args).execute(include_relations: relations))
end
private
diff --git a/app/graphql/resolvers/project_members_resolver.rb b/app/graphql/resolvers/project_members_resolver.rb
index e64e8b845a5..659b12c2563 100644
--- a/app/graphql/resolvers/project_members_resolver.rb
+++ b/app/graphql/resolvers/project_members_resolver.rb
@@ -5,6 +5,11 @@ module Resolvers
class ProjectMembersResolver < MembersResolver
authorize :read_project_member
+ argument :relations, [Types::ProjectMemberRelationEnum],
+ description: 'Filter members by the given member relations',
+ required: false,
+ default_value: MembersFinder::DEFAULT_RELATIONS
+
private
def finder_class
diff --git a/app/graphql/types/group_member_relation_enum.rb b/app/graphql/types/group_member_relation_enum.rb
new file mode 100644
index 00000000000..aa2e73d4944
--- /dev/null
+++ b/app/graphql/types/group_member_relation_enum.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+module Types
+ class GroupMemberRelationEnum < BaseEnum
+ graphql_name 'GroupMemberRelation'
+ description 'Group member relation'
+
+ ::GroupMembersFinder::RELATIONS.each do |member_relation|
+ value member_relation.to_s.upcase, value: member_relation, description: "#{member_relation.to_s.titleize} members"
+ end
+ end
+end
diff --git a/app/graphql/types/project_member_relation_enum.rb b/app/graphql/types/project_member_relation_enum.rb
new file mode 100644
index 00000000000..fbad23b956f
--- /dev/null
+++ b/app/graphql/types/project_member_relation_enum.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+module Types
+ class ProjectMemberRelationEnum < BaseEnum
+ graphql_name 'ProjectMemberRelation'
+ description 'Project member relation'
+
+ ::MembersFinder::RELATIONS.each do |member_relation|
+ value member_relation.to_s.upcase, value: member_relation, description: "#{member_relation.to_s.titleize} members"
+ end
+ end
+end
diff --git a/app/models/alert_management/alert.rb b/app/models/alert_management/alert.rb
index 7ce7f40b6a8..f7f7bb99b5a 100644
--- a/app/models/alert_management/alert.rb
+++ b/app/models/alert_management/alert.rb
@@ -263,3 +263,5 @@ module AlertManagement
end
end
end
+
+AlertManagement::Alert.prepend_if_ee('EE::AlertManagement::Alert')
diff --git a/app/models/dependency_proxy/manifest.rb b/app/models/dependency_proxy/manifest.rb
new file mode 100644
index 00000000000..98a051dd81f
--- /dev/null
+++ b/app/models/dependency_proxy/manifest.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class DependencyProxy::Manifest < ApplicationRecord
+ include FileStoreMounter
+
+ belongs_to :group
+
+ validates :group, presence: true
+ validates :file, presence: true
+ validates :file_name, presence: true
+ validates :digest, presence: true
+
+ mount_file_store_uploader DependencyProxy::FileUploader
+end