summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-12-05 19:40:33 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-12-05 19:40:33 +0000
commitd7c5be92af9c10cf20e78363c188c1a707a6bb90 (patch)
treedf2d354bc4277c7a0324fb8240bd4e24d58007f2 /app
parentb28d1361dd1ec63053dbfae475097928c6d01116 (diff)
downloadgitlab-ce-d7c5be92af9c10cf20e78363c188c1a707a6bb90.tar.gz
Add latest changes from gitlab-org/gitlab@15-6-stable-ee
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/branches/components/delete_branch_modal.vue7
-rw-r--r--app/assets/javascripts/header.js2
-rw-r--r--app/helpers/application_helper.rb3
-rw-r--r--app/services/resource_access_tokens/create_service.rb9
-rw-r--r--app/views/layouts/header/_default.html.haml21
5 files changed, 31 insertions, 11 deletions
diff --git a/app/assets/javascripts/branches/components/delete_branch_modal.vue b/app/assets/javascripts/branches/components/delete_branch_modal.vue
index 383fa5f7512..d5631337cec 100644
--- a/app/assets/javascripts/branches/components/delete_branch_modal.vue
+++ b/app/assets/javascripts/branches/components/delete_branch_modal.vue
@@ -76,7 +76,9 @@ export default {
this.$refs.modal.show();
},
submitForm() {
- this.$refs.form.submit();
+ if (!this.deleteButtonDisabled) {
+ this.$refs.form.submit();
+ }
},
closeModal() {
this.$refs.modal.hide();
@@ -127,7 +129,7 @@ export default {
</div>
</gl-alert>
- <form ref="form" :action="deletePath" method="post">
+ <form ref="form" :action="deletePath" method="post" @submit.prevent>
<div v-if="isProtectedBranch" class="gl-mt-4">
<p>
<gl-sprintf :message="undoneWarning">
@@ -150,6 +152,7 @@ export default {
class="gl-mt-4"
aria-labelledby="input-label"
autocomplete="off"
+ @keyup.enter="submitForm"
/>
</p>
</div>
diff --git a/app/assets/javascripts/header.js b/app/assets/javascripts/header.js
index 9b6113c7444..4d03a523486 100644
--- a/app/assets/javascripts/header.js
+++ b/app/assets/javascripts/header.js
@@ -84,6 +84,8 @@ function initStatusTriggers() {
})
.catch(() => {});
});
+
+ setStatusModalTriggerEl.classList.add('ready');
}
}
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb
index ce6900d1779..340f3d45365 100644
--- a/app/helpers/application_helper.rb
+++ b/app/helpers/application_helper.rb
@@ -315,7 +315,8 @@ module ApplicationHelper
class_names << 'epic-boards-page gl-overflow-auto' if current_controller?(:epic_boards)
class_names << 'with-performance-bar' if performance_bar_enabled?
class_names << system_message_class
- class_names << 'logged-out-marketing-header' unless current_user
+ class_names << 'logged-out-marketing-header' if !current_user && ::Gitlab.com?
+
class_names
end
diff --git a/app/services/resource_access_tokens/create_service.rb b/app/services/resource_access_tokens/create_service.rb
index b8a210c0a95..c6948536053 100644
--- a/app/services/resource_access_tokens/create_service.rb
+++ b/app/services/resource_access_tokens/create_service.rb
@@ -13,6 +13,7 @@ module ResourceAccessTokens
return error("User does not have permission to create #{resource_type} access token") unless has_permission_to_create?
access_level = params[:access_level] || Gitlab::Access::MAINTAINER
+ return error("Could not provision owner access to project access token") if do_not_allow_owner_access_level_for_project_bot?(access_level)
user = create_user
@@ -107,7 +108,7 @@ module ResourceAccessTokens
end
def create_membership(resource, user, access_level)
- resource.add_member(user, access_level, current_user: current_user, expires_at: params[:expires_at])
+ resource.add_member(user, access_level, expires_at: params[:expires_at])
end
def log_event(token)
@@ -121,6 +122,12 @@ module ResourceAccessTokens
def success(access_token)
ServiceResponse.success(payload: { access_token: access_token })
end
+
+ def do_not_allow_owner_access_level_for_project_bot?(access_level)
+ resource.is_a?(Project) &&
+ access_level == Gitlab::Access::OWNER &&
+ !current_user.can?(:manage_owners, resource)
+ end
end
end
diff --git a/app/views/layouts/header/_default.html.haml b/app/views/layouts/header/_default.html.haml
index 42ffd155647..47d8f5a447f 100644
--- a/app/views/layouts/header/_default.html.haml
+++ b/app/views/layouts/header/_default.html.haml
@@ -19,7 +19,11 @@
.gl-display-none.gl-sm-display-block
= render "layouts/nav/top_nav"
- else
- = render 'layouts/header/marketing_links'
+ - if Gitlab.com?
+ = render 'layouts/header/marketing_links'
+ - else
+ .gl-display-none.gl-sm-display-block
+ = render "layouts/nav/top_nav"
- if top_nav_show_search
.navbar-collapse.gl-transition-medium.collapse.gl-mr-auto.global-search-container.hide-when-top-nav-responsive-open
@@ -102,7 +106,7 @@
= sprite_icon('chevron-down', css_class: 'caret-down')
.dropdown-menu.dropdown-menu-right
= render 'layouts/header/help_dropdown'
- - unless current_user
+ - if !current_user && Gitlab.com?
%li.nav-item.gl-display-none.gl-sm-display-block
= render "layouts/nav/top_nav"
- if header_link?(:user_dropdown)
@@ -118,11 +122,14 @@
= link_to admin_impersonation_path, class: 'nav-link impersonation-btn', method: :delete, title: _('Stop impersonation'), aria: { label: _('Stop impersonation') }, data: { toggle: 'tooltip', placement: 'bottom', container: 'body', qa_selector: 'stop_impersonation_link' } do
= sprite_icon('incognito', size: 18)
- if header_link?(:sign_in)
- %li.nav-item.gl-display-none.gl-sm-display-block
- = link_to _('Sign up now'), new_user_registration_path, class: 'gl-button btn btn-default btn-sign-in'
- %li.nav-item.gl-display-none.gl-sm-display-block
- = link_to _('Login'), new_session_path(:user, redirect_to_referer: 'yes')
- = render 'layouts/header/sign_in_register_button', class: 'gl-sm-display-none'
+ - if Gitlab.com?
+ %li.nav-item.gl-display-none.gl-sm-display-block
+ = link_to _('Sign up now'), new_user_registration_path, class: 'gl-button btn btn-default btn-sign-in'
+ %li.nav-item.gl-display-none.gl-sm-display-block
+ = link_to _('Login'), new_session_path(:user, redirect_to_referer: 'yes')
+ = render 'layouts/header/sign_in_register_button', class: 'gl-sm-display-none'
+ - else
+ = render 'layouts/header/sign_in_register_button'
%button.navbar-toggler.d-block.d-sm-none{ type: 'button', class: 'gl-border-none!', data: { testid: 'top-nav-responsive-toggle', qa_selector: 'mobile_navbar_button' } }
%span.sr-only= _('Toggle navigation')