diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-06-23 00:10:32 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-06-23 00:10:32 +0300 |
commit | 7f0915e14044e4c82c2293b35602a4ff8ee963c2 (patch) | |
tree | 1e057ee39ced7a672c2860cc6bb194cc8a8c7a53 /app | |
parent | 06f12476c7962ba59579b3a08d187a22325d9039 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
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 |