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>2023-06-23 00:10:32 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-06-23 00:10:32 +0300
commit7f0915e14044e4c82c2293b35602a4ff8ee963c2 (patch)
tree1e057ee39ced7a672c2860cc6bb194cc8a8c7a53 /app
parent06f12476c7962ba59579b3a08d187a22325d9039 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/vue_shared/components/registry/list_item.vue13
-rw-r--r--app/graphql/resolvers/issues/base_resolver.rb8
-rw-r--r--app/graphql/types/assignee_wildcard_id_enum.rb11
-rw-r--r--app/graphql/types/boards/assignee_wildcard_id_enum.rb13
-rw-r--r--app/graphql/types/boards/board_issue_input_type.rb4
-rw-r--r--app/services/clusters/agents/authorize_proxy_user_service.rb21
6 files changed, 41 insertions, 29 deletions
diff --git a/app/assets/javascripts/vue_shared/components/registry/list_item.vue b/app/assets/javascripts/vue_shared/components/registry/list_item.vue
index 5d0ee6adffe..ccda8c5fea7 100644
--- a/app/assets/javascripts/vue_shared/components/registry/list_item.vue
+++ b/app/assets/javascripts/vue_shared/components/registry/list_item.vue
@@ -1,9 +1,13 @@
<script>
-import { GlButton } from '@gitlab/ui';
+import { GlButton, GlTooltipDirective } from '@gitlab/ui';
+import { __ } from '~/locale';
export default {
name: 'ListItem',
components: { GlButton },
+ directives: {
+ GlTooltip: GlTooltipDirective,
+ },
props: {
first: {
type: Boolean,
@@ -27,6 +31,9 @@ export default {
detailsSlots: [],
};
},
+ i18n: {
+ toggleDetailsLabel: __('Toggle details'),
+ },
computed: {
optionalClasses() {
return {
@@ -75,10 +82,14 @@ export default {
<slot name="left-primary"></slot>
<gl-button
v-if="detailsSlots.length > 0"
+ v-gl-tooltip
:selected="isDetailsShown"
icon="ellipsis_h"
size="small"
class="gl-ml-2 gl-display-none gl-sm-display-block"
+ :title="$options.i18n.toggleDetailsLabel"
+ :aria-label="$options.i18n.toggleDetailsLabel"
+ :aria-expanded="isDetailsShown"
@click="toggleDetails"
/>
</div>
diff --git a/app/graphql/resolvers/issues/base_resolver.rb b/app/graphql/resolvers/issues/base_resolver.rb
index fefd17d5e20..495b72231fc 100644
--- a/app/graphql/resolvers/issues/base_resolver.rb
+++ b/app/graphql/resolvers/issues/base_resolver.rb
@@ -16,6 +16,9 @@ module Resolvers
argument :assignee_usernames, [GraphQL::Types::String],
required: false,
description: 'Usernames of users assigned to the issue.'
+ argument :assignee_wildcard_id, ::Types::AssigneeWildcardIdEnum,
+ required: false,
+ description: 'Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames.'
argument :author_username, GraphQL::Types::String,
required: false,
description: 'Username of the author of the issue.'
@@ -148,6 +151,7 @@ module Resolvers
rewrite_param_name(args, :assignee_usernames, :assignee_username)
rewrite_param_name(args[:or], :assignee_usernames, :assignee_username)
rewrite_param_name(args[:not], :assignee_usernames, :assignee_username)
+ rewrite_param_name(args, :assignee_wildcard_id, :assignee_id)
end
def rewrite_param_name(params, old_name, new_name)
@@ -163,7 +167,7 @@ module Resolvers
end
def mutually_exclusive_assignee_username_args
- [:assignee_usernames, :assignee_username]
+ [:assignee_usernames, :assignee_username, :assignee_wildcard_id]
end
def params_not_mutually_exclusive(args, mutually_exclusive_args)
@@ -171,7 +175,7 @@ module Resolvers
arg_str = mutually_exclusive_args.map { |x| x.to_s.camelize(:lower) }.join(', ')
raise ::Gitlab::Graphql::Errors::ArgumentError,
- "only one of [#{arg_str}] arguments is allowed at the same time."
+ "only one of [#{arg_str}] arguments is allowed at the same time."
end
end
# rubocop:enable Graphql/ResolverType
diff --git a/app/graphql/types/assignee_wildcard_id_enum.rb b/app/graphql/types/assignee_wildcard_id_enum.rb
new file mode 100644
index 00000000000..09afab7de37
--- /dev/null
+++ b/app/graphql/types/assignee_wildcard_id_enum.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+module Types
+ class AssigneeWildcardIdEnum < BaseEnum
+ graphql_name 'AssigneeWildcardId'
+ description 'Assignee ID wildcard values'
+
+ value 'NONE', 'No assignee is assigned.'
+ value 'ANY', 'An assignee is assigned.'
+ end
+end
diff --git a/app/graphql/types/boards/assignee_wildcard_id_enum.rb b/app/graphql/types/boards/assignee_wildcard_id_enum.rb
deleted file mode 100644
index ba9058a78d9..00000000000
--- a/app/graphql/types/boards/assignee_wildcard_id_enum.rb
+++ /dev/null
@@ -1,13 +0,0 @@
-# frozen_string_literal: true
-
-module Types
- module Boards
- class AssigneeWildcardIdEnum < BaseEnum
- graphql_name 'AssigneeWildcardId'
- description 'Assignee ID wildcard values'
-
- value 'NONE', 'No assignee is assigned.'
- value 'ANY', 'An assignee is assigned.'
- end
- end
-end
diff --git a/app/graphql/types/boards/board_issue_input_type.rb b/app/graphql/types/boards/board_issue_input_type.rb
index 897e3d05948..ea7c207cda2 100644
--- a/app/graphql/types/boards/board_issue_input_type.rb
+++ b/app/graphql/types/boards/board_issue_input_type.rb
@@ -17,9 +17,9 @@ module Types
required: false,
description: 'Search query for issue title or description.'
- argument :assignee_wildcard_id, ::Types::Boards::AssigneeWildcardIdEnum,
+ argument :assignee_wildcard_id, ::Types::AssigneeWildcardIdEnum,
required: false,
- description: 'Filter by assignee wildcard. Incompatible with assigneeUsername.'
+ description: 'Filter by assignee wildcard. Incompatible with assigneeUsername and assigneeUsernames.'
argument :confidential, GraphQL::Types::Boolean,
required: false,
diff --git a/app/services/clusters/agents/authorize_proxy_user_service.rb b/app/services/clusters/agents/authorize_proxy_user_service.rb
index fbcf25153c1..abf451ed350 100644
--- a/app/services/clusters/agents/authorize_proxy_user_service.rb
+++ b/app/services/clusters/agents/authorize_proxy_user_service.rb
@@ -11,17 +11,14 @@ module Clusters
end
def execute
- return forbidden unless user_access_config.present?
+ return forbidden('`user_access` keyword is not found in agent config file.') unless user_access_config.present?
access_as = user_access_config['access_as']
- return forbidden unless access_as.present?
- return forbidden if access_as.size != 1
- if payload = handle_access(access_as)
- return success(payload: payload)
- end
+ return forbidden('`access_as` is not found under the `user_access` keyword.') unless access_as.present?
+ return forbidden('`access_as` must exist only once under the `user_access` keyword.') if access_as.size != 1
- forbidden
+ handle_access(access_as)
end
private
@@ -52,9 +49,11 @@ module Clusters
end
def access_as_agent
- return if authorizations.empty?
+ if authorizations.empty?
+ return forbidden('You must be a member of `projects` or `groups` under the `user_access` keyword.')
+ end
- response_base.merge(access_as: { agent: {} })
+ success(payload: response_base.merge(access_as: { agent: {} }))
end
def user_access_config
@@ -64,8 +63,8 @@ module Clusters
delegate :success, to: ServiceResponse, private: true
- def forbidden
- ServiceResponse.error(reason: :forbidden, message: '403 Forbidden')
+ def forbidden(message)
+ ServiceResponse.error(reason: :forbidden, message: message)
end
end
end