diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-02 09:09:50 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-12-02 09:09:50 +0300 |
commit | d5e4aa5266e94798f1c4a1a83a77fa0354056f0e (patch) | |
tree | b83f32d31052fb1f5b402298b9a7c06ba4077d5f /app | |
parent | 408af4d5cf3a3893f8431d4d28821c766ab92bec (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r-- | app/finders/group_members_finder.rb | 5 | ||||
-rw-r--r-- | app/finders/members_finder.rb | 9 | ||||
-rw-r--r-- | app/graphql/resolvers/group_members_resolver.rb | 5 | ||||
-rw-r--r-- | app/graphql/resolvers/members_resolver.rb | 4 | ||||
-rw-r--r-- | app/graphql/resolvers/project_members_resolver.rb | 5 | ||||
-rw-r--r-- | app/graphql/types/group_member_relation_enum.rb | 12 | ||||
-rw-r--r-- | app/graphql/types/project_member_relation_enum.rb | 12 | ||||
-rw-r--r-- | app/models/alert_management/alert.rb | 2 | ||||
-rw-r--r-- | app/models/dependency_proxy/manifest.rb | 14 |
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 |