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
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-01-16 15:07:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-01-16 15:07:42 +0300
commit6d4ce68742e8decbfca5a1b382ce260790e8c396 (patch)
tree148d261da58065998137fd140a6a55f62f4798df /app/assets/javascripts/members
parent9c149f7026664e988e69dae31121e6ccc810c6e8 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/members')
-rw-r--r--app/assets/javascripts/members/components/action_dropdowns/constants.js4
-rw-r--r--app/assets/javascripts/members/components/action_dropdowns/user_action_dropdown.vue26
-rw-r--r--app/assets/javascripts/members/components/table/members_table.vue7
-rw-r--r--app/assets/javascripts/members/utils.js3
4 files changed, 36 insertions, 4 deletions
diff --git a/app/assets/javascripts/members/components/action_dropdowns/constants.js b/app/assets/javascripts/members/components/action_dropdowns/constants.js
index eb5b2182ece..8ccfc57dc28 100644
--- a/app/assets/javascripts/members/components/action_dropdowns/constants.js
+++ b/app/assets/javascripts/members/components/action_dropdowns/constants.js
@@ -2,9 +2,13 @@ import { __, s__ } from '~/locale';
export const I18N = {
actions: __('More actions'),
+ disableTwoFactor: s__('Members|Disable two-factor authentication'),
editPermissions: s__('Members|Edit permissions'),
leaveGroup: __('Leave group'),
removeMember: __('Remove member'),
+ confirmDisableTwoFactor: s__(
+ 'Members|Are you sure you want to disable the two-factor authentication for %{userName}?',
+ ),
confirmNormalUserRemoval: s__(
'Members|Are you sure you want to remove %{userName} from "%{group}"?',
),
diff --git a/app/assets/javascripts/members/components/action_dropdowns/user_action_dropdown.vue b/app/assets/javascripts/members/components/action_dropdowns/user_action_dropdown.vue
index 816481d4329..8f5c32956a2 100644
--- a/app/assets/javascripts/members/components/action_dropdowns/user_action_dropdown.vue
+++ b/app/assets/javascripts/members/components/action_dropdowns/user_action_dropdown.vue
@@ -15,6 +15,10 @@ export default {
i18n: I18N,
components: {
GlDropdown,
+ DisableTwoFactorDropdownItem: () =>
+ import(
+ 'ee_component/members/components/action_dropdowns/disable_two_factor_dropdown_item.vue'
+ ),
LdapOverrideDropdownItem: () =>
import('ee_component/members/components/ldap/ldap_override_dropdown_item.vue'),
LeaveGroupDropdownItem,
@@ -38,7 +42,11 @@ export default {
},
},
computed: {
- modalMessage() {
+ modalDisableTwoFactor() {
+ const userName = this.member.user.username;
+ return sprintf(this.$options.i18n.confirmDisableTwoFactor, { userName }, false);
+ },
+ modalRemoveUser() {
const { user, source } = this.member;
if (this.permissions.canRemoveBlockedByLastOwner) {
@@ -68,7 +76,9 @@ export default {
};
},
showDropdown() {
- return this.showLeaveOrRemove || this.showLdapOverride;
+ return (
+ this.permissions.canDisableTwoFactor || this.showLeaveOrRemove || this.showLdapOverride
+ );
},
showLeaveOrRemove() {
return this.permissions.canRemove || this.permissions.canRemoveBlockedByLastOwner;
@@ -93,20 +103,30 @@ export default {
data-testid="user-action-dropdown"
data-qa-selector="user_action_dropdown"
>
+ <disable-two-factor-dropdown-item
+ v-if="permissions.canDisableTwoFactor"
+ :modal-message="modalDisableTwoFactor"
+ :user-id="member.user.id"
+ >
+ {{ $options.i18n.disableTwoFactor }}
+ </disable-two-factor-dropdown-item>
+
<template v-if="showLeaveOrRemove">
<leave-group-dropdown-item v-if="isCurrentUser" :member="member" :permissions="permissions">{{
$options.i18n.leaveGroup
}}</leave-group-dropdown-item>
+
<remove-member-dropdown-item
v-else
:member-id="member.id"
:member-model-type="member.type"
:user-deletion-obstacles="userDeletionObstaclesUserData"
- :modal-message="modalMessage"
+ :modal-message="modalRemoveUser"
:prevent-removal="permissions.canRemoveBlockedByLastOwner"
>{{ $options.i18n.removeMember }}</remove-member-dropdown-item
>
</template>
+
<ldap-override-dropdown-item v-else-if="showLdapOverride" :member="member">{{
$options.i18n.editPermissions
}}</ldap-override-dropdown-item>
diff --git a/app/assets/javascripts/members/components/table/members_table.vue b/app/assets/javascripts/members/components/table/members_table.vue
index 6d242f38d0e..8f03a298e63 100644
--- a/app/assets/javascripts/members/components/table/members_table.vue
+++ b/app/assets/javascripts/members/components/table/members_table.vue
@@ -3,6 +3,7 @@ import { GlTable, GlBadge, GlPagination } from '@gitlab/ui';
import { mapState } from 'vuex';
import MembersTableCell from 'ee_else_ce/members/components/table/members_table_cell.vue';
import {
+ canDisableTwoFactor,
canUnban,
canOverride,
canRemove,
@@ -47,6 +48,8 @@ export default {
RemoveMemberModal,
ExpirationDatepicker,
MemberActivity,
+ DisableTwoFactorModal: () =>
+ import('ee_component/members/components/modals/disable_two_factor_modal.vue'),
LdapOverrideConfirmationModal: () =>
import('ee_component/members/components/ldap/ldap_override_confirmation_modal.vue'),
},
@@ -95,7 +98,8 @@ export default {
canResend(member) ||
canUpdate(member, this.currentUserId) ||
canOverride(member) ||
- canUnban(member)
+ canUnban(member) ||
+ canDisableTwoFactor(member)
);
},
showField(field) {
@@ -320,6 +324,7 @@ export default {
:label-prev-page="__('Go to previous page')"
align="center"
/>
+ <disable-two-factor-modal />
<remove-group-link-modal />
<remove-member-modal />
<ldap-override-confirmation-modal />
diff --git a/app/assets/javascripts/members/utils.js b/app/assets/javascripts/members/utils.js
index b7af97ebac5..09e4b5e8a6f 100644
--- a/app/assets/javascripts/members/utils.js
+++ b/app/assets/javascripts/members/utils.js
@@ -109,6 +109,9 @@ export const buildSortHref = ({
};
// Defined in `ee/app/assets/javascripts/members/utils.js`
+export const canDisableTwoFactor = () => false;
+
+// Defined in `ee/app/assets/javascripts/members/utils.js`
export const canOverride = () => false;
// Defined in `ee/app/assets/javascripts/members/utils.js`