diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-16 12:07:42 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-16 12:07:42 +0000 |
commit | 6d4ce68742e8decbfca5a1b382ce260790e8c396 (patch) | |
tree | 148d261da58065998137fd140a6a55f62f4798df /app/assets/javascripts/members | |
parent | 9c149f7026664e988e69dae31121e6ccc810c6e8 (diff) | |
download | gitlab-ce-6d4ce68742e8decbfca5a1b382ce260790e8c396.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/assets/javascripts/members')
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` |