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>2021-02-15 12:09:00 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-02-15 12:09:00 +0300
commitc5b1e86b43f136d8a43cab867ddc49a02751c45a (patch)
treedc9fb9b3bcf4cee9810eed22004ddc640f0f96e3 /app
parent61a8928ff0db524d6e13193820fdee65c76d3919 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app')
-rw-r--r--app/assets/javascripts/pages/projects/merge_requests/creations/index.js2
-rw-r--r--app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js24
-rw-r--r--app/models/concerns/protected_ref.rb16
-rw-r--r--app/views/profiles/keys/_key.html.haml59
4 files changed, 54 insertions, 47 deletions
diff --git a/app/assets/javascripts/pages/projects/merge_requests/creations/index.js b/app/assets/javascripts/pages/projects/merge_requests/creations/index.js
index febfecebbd2..34d9fa03d24 100644
--- a/app/assets/javascripts/pages/projects/merge_requests/creations/index.js
+++ b/app/assets/javascripts/pages/projects/merge_requests/creations/index.js
@@ -1,3 +1,3 @@
import initMergeRequest from '~/pages/projects/merge_requests/init_merge_request';
-document.addEventListener('DOMContentLoaded', initMergeRequest);
+initMergeRequest();
diff --git a/app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js b/app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js
index 0bf0ca1a643..9aecd154483 100644
--- a/app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js
+++ b/app/assets/javascripts/pages/projects/merge_requests/creations/new/index.js
@@ -2,16 +2,14 @@ import initPipelines from '~/commit/pipelines/pipelines_bundle';
import MergeRequest from '~/merge_request';
import initCompare from './compare';
-document.addEventListener('DOMContentLoaded', () => {
- const mrNewCompareNode = document.querySelector('.js-merge-request-new-compare');
- if (mrNewCompareNode) {
- initCompare(mrNewCompareNode);
- } else {
- const mrNewSubmitNode = document.querySelector('.js-merge-request-new-submit');
- // eslint-disable-next-line no-new
- new MergeRequest({
- action: mrNewSubmitNode.dataset.mrSubmitAction,
- });
- initPipelines();
- }
-});
+const mrNewCompareNode = document.querySelector('.js-merge-request-new-compare');
+if (mrNewCompareNode) {
+ initCompare(mrNewCompareNode);
+} else {
+ const mrNewSubmitNode = document.querySelector('.js-merge-request-new-submit');
+ // eslint-disable-next-line no-new
+ new MergeRequest({
+ action: mrNewSubmitNode.dataset.mrSubmitAction,
+ });
+ initPipelines();
+}
diff --git a/app/models/concerns/protected_ref.rb b/app/models/concerns/protected_ref.rb
index 65195a8d5aa..cf23a27244c 100644
--- a/app/models/concerns/protected_ref.rb
+++ b/app/models/concerns/protected_ref.rb
@@ -40,20 +40,26 @@ module ProtectedRef
end
def protected_ref_accessible_to?(ref, user, project:, action:, protected_refs: nil)
- access_levels_for_ref(ref, action: action, protected_refs: protected_refs).any? do |access_level|
+ all_matching_rules_allow?(ref, action: action, protected_refs: protected_refs) do |access_level|
access_level.check_access(user)
end
end
def developers_can?(action, ref, protected_refs: nil)
- access_levels_for_ref(ref, action: action, protected_refs: protected_refs).any? do |access_level|
+ all_matching_rules_allow?(ref, action: action, protected_refs: protected_refs) do |access_level|
access_level.access_level == Gitlab::Access::DEVELOPER
end
end
- def access_levels_for_ref(ref, action:, protected_refs: nil)
- self.matching(ref, protected_refs: protected_refs)
- .flat_map(&:"#{action}_access_levels")
+ def all_matching_rules_allow?(ref, action:, protected_refs: nil, &block)
+ access_levels_groups =
+ self.matching(ref, protected_refs: protected_refs).map(&:"#{action}_access_levels")
+
+ return false if access_levels_groups.blank?
+
+ access_levels_groups.all? do |access_levels|
+ access_levels.any?(&block)
+ end
end
# Returns all protected refs that match the given ref name.
diff --git a/app/views/profiles/keys/_key.html.haml b/app/views/profiles/keys/_key.html.haml
index 38fea521578..cc2e2a30052 100644
--- a/app/views/profiles/keys/_key.html.haml
+++ b/app/views/profiles/keys/_key.html.haml
@@ -1,30 +1,33 @@
-%li.d-flex.align-items-center.key-list-item
- .gl-mr-3
- - if key.valid?
- - if key.expired?
- %span.d-inline-block.has-tooltip{ title: s_('Profiles|Your key has expired') }
- = sprite_icon('warning-solid', css_class: 'settings-list-icon d-none d-sm-block')
- - else
- = sprite_icon('key', css_class: 'settings-list-icon d-none d-sm-block ')
- - else
- %span.d-inline-block.has-tooltip{ title: key.errors.full_messages.join(', ') }
- = sprite_icon('warning-solid', css_class: 'settings-list-icon d-none d-sm-block')
+%li.key-list-item
+ .gl-display-flex.gl-align-items-flex-start
+ .key-list-item-info.gl-w-full.float-none
+ = link_to path_to_key(key, is_admin), class: "title text-3" do
+ = key.title
- .key-list-item-info.w-100.float-none
- = link_to path_to_key(key, is_admin), class: "title" do
- = key.title
- %span.text-truncate
- = key.fingerprint
+ .gl-display-flex.gl-align-items-center.gl-mt-2
+ - if key.valid?
+ - if key.expired?
+ %span.gl-display-inline-block.has-tooltip{ title: s_('Profiles|Your key has expired') }
+ = sprite_icon('warning-solid', css_class: 'settings-list-icon gl-display-none gl-sm-display-block')
+ - else
+ = sprite_icon('key', css_class: 'settings-list-icon gl-display-none gl-sm-display-block')
+ - else
+ %span.gl-display-inline-block.has-tooltip{ title: key.errors.full_messages.join(', ') }
+ = sprite_icon('warning-solid', css_class: 'settings-list-icon gl-display-none gl-sm-display-block')
- .key-list-item-dates.d-flex.align-items-start.justify-content-between
- %span.last-used-at.gl-mr-3
- = s_('Profiles|Last used:')
- = key.last_used_at ? time_ago_with_tooltip(key.last_used_at) : _('Never')
- %span.expires.gl-mr-3
- = s_('Profiles|Expires:')
- = key.expires_at ? key.expires_at.to_date : _('Never')
- %span.key-created-at.gl-display-flex.gl-align-items-center
- = s_('Profiles|Created%{time_ago}'.html_safe) % { time_ago: time_ago_with_tooltip(key.created_at, html_class: 'gl-ml-2')}
- - if key.can_delete?
- .gl-ml-3
- = render 'shared/ssh_keys/key_delete', html_class: "btn btn-default gl-button btn-default-tertiary js-confirm-modal-button", button_data: ssh_key_delete_modal_data(key, path_to_key(key, is_admin))
+ %span.gl-text-truncate.gl-sm-ml-3
+ = key.fingerprint
+
+ .gl-mt-3= s_('Profiles|Created%{time_ago}'.html_safe) % { time_ago: time_ago_with_tooltip(key.created_at, html_class: 'gl-ml-2')}
+
+ .key-list-item-dates
+ %span.last-used-at.gl-mr-3
+ = s_('Profiles|Last used:')
+ = key.last_used_at ? time_ago_with_tooltip(key.last_used_at) : _('Never')
+ %span.expires.gl-mr-3
+ = s_('Profiles|Expires:')
+ = key.expires_at ? key.expires_at.to_date : _('Never')
+ %span.key-created-at.gl-display-flex.gl-align-items-center
+ - if key.can_delete?
+ .gl-ml-3
+ = render 'shared/ssh_keys/key_delete', html_class: "btn gl-button btn-icon btn-danger js-confirm-modal-button", button_data: ssh_key_delete_modal_data(key, path_to_key(key, is_admin))