Skip to content

feat(mfa): implementation new mfa feature#6126

Merged
piggggggggy merged 11 commits intodevelopfrom
feature-mfa-enhancement
Aug 11, 2025
Merged

feat(mfa): implementation new mfa feature#6126
piggggggggy merged 11 commits intodevelopfrom
feature-mfa-enhancement

Conversation

@piggggggggy
Copy link
Copy Markdown
Member

Skip Review (optional)

  • Minor changes that don't affect the functionality (e.g. style, chore, ci, test, docs)
  • Previously reviewed in feature branch, further review is not mandatory
  • Self-merge allowed for solo developers or urgent changes

Description (optional)

SSIA

Things to Talk About (optional)

* chore: update user mfa setting params and model

Signed-off-by: samuel.park <samuel.park@megazone.com>

* fix(user-table): add MFA management table action

Signed-off-by: samuel.park <samuel.park@megazone.com>

* feat(user-mfa): add user bulk MFA setting modal and mutation

Signed-off-by: samuel.park <samuel.park@megazone.com>

* feat(user-mfa): add user bulk MFA disable modal and mutation

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: add MFA modal components to user management page

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: add user MFA setting translations

Signed-off-by: samuel.park <samuel.park@megazone.com>

* feat(user-mfa-setting): add single user select case

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: apply copilot reviews

Signed-off-by: piggggggggy <samuel.park@mz.co.kr>

* chore: apply changed planning

Signed-off-by: samuel.park <samuel.park@megazone.com>

---------

Signed-off-by: samuel.park <samuel.park@megazone.com>
Signed-off-by: piggggggggy <samuel.park@mz.co.kr>
…arate mfa-disable button and modal (#6038)

* feat(modal-controller): creat modal-controller wrapper component

Signed-off-by: samuel.park <samuel.park@megazone.com>

* feat(MFA-disable): separate disable button & apply modal-controller

Signed-off-by: samuel.park <samuel.park@megazone.com>

* feat: apply separated MFA-disable button

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: refactor mfa-disable mutation composable

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: add translation

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: small fix

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: typo

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: typo

Signed-off-by: samuel.park <samuel.park@megazone.com>

---------

Signed-off-by: samuel.park <samuel.park@megazone.com>
* chore: edit change MFA request

Signed-off-by: samuel.park <samuel.park@megazone.com>

* fix(mfa-setting): separate mfa-setting components

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: apply separated components

Signed-off-by: samuel.park <samuel.park@megazone.com>

* fix(existing-user-modal): apply mfa-setting form section

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: small fix

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: edit annotations

Signed-off-by: samuel.park <samuel.park@megazone.com>

---------

Signed-off-by: samuel.park <samuel.park@megazone.com>
)

* feat(mfa): create mfa query composables

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: add disable-mfa user-profile verb

Signed-off-by: samuel.park <samuel.park@megazone.com>

* feat(mfa): create mfa form component

Signed-off-by: samuel.park <samuel.park@megazone.com>

* feat(mfa): create mfa setting modals

Signed-off-by: samuel.park <samuel.park@megazone.com>

* feat: apply refactored modals

Signed-off-by: samuel.park <samuel.park@megazone.com>

* refactor(mfa): refactor mfa UI component and mfa modals

Signed-off-by: samuel.park <samuel.park@megazone.com>

* feat(mfa): apply new design (my-page mfa)

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: small fix

Signed-off-by: samuel.park <samuel.park@megazone.com>

---------

Signed-off-by: samuel.park <samuel.park@megazone.com>
* chore: chore fix

Signed-off-by: samuel.park <samuel.park@megazone.com>

* feat(mfa-setup): create mfa setup page

Signed-off-by: samuel.park <samuel.park@megazone.com>

* fix(mfa-setup): refactor mfa-setup scenario flow

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: translation

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore(my-page): solve verified mfa method bug

Signed-off-by: samuel.park <samuel.park@megazone.com>

---------

Signed-off-by: samuel.park <samuel.park@megazone.com>
Signed-off-by: samuel.park <samuel.park@megazone.com>
Signed-off-by: samuel.park <samuel.park@megazone.com>
* fix(mfa): solve switching mfa-type bug

Signed-off-by: samuel.park <samuel.park@megazone.com>

* feat(user-form-modal): apply vue query for sync

Signed-off-by: samuel.park <samuel.park@megazone.com>

* fix(user-cache): apply user cache sync to userProfile

Signed-off-by: samuel.park <samuel.park@megazone.com>

* fix(my-account): solve mfa resync bug

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: fix ui (info-tooltip)

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: solve type lint error

Signed-off-by: samuel.park <samuel.park@megazone.com>

---------

Signed-off-by: samuel.park <samuel.park@megazone.com>
Signed-off-by: samuel.park <samuel.park@megazone.com>
* chore: mfa minor QAs

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: minor design fix

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: solve email resent issue

Signed-off-by: samuel.park <samuel.park@megazone.com>

* chore: minor refactoring

Signed-off-by: samuel.park <samuel.park@megazone.com>

---------

Signed-off-by: samuel.park <samuel.park@megazone.com>
@piggggggggy piggggggggy requested a review from Copilot August 11, 2025 11:19
@piggggggggy piggggggggy added the self_approved/review Pull Request has been reviewed and approved by the author without requiring additional reviewers. label Aug 11, 2025
@vercel
Copy link
Copy Markdown

vercel bot commented Aug 11, 2025

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
mfa-saas-qa ✅ Ready (Inspect) Visit Preview 💬 Add feedback Aug 11, 2025 11:34am
2 Skipped Deployments
Name Status Preview Comments Updated (UTC)
console ⬜️ Ignored (Inspect) Visit Preview Aug 11, 2025 11:34am
web-storybook ⬜️ Ignored (Inspect) Aug 11, 2025 11:34am

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request implements a comprehensive multi-factor authentication (MFA) feature across the application. The changes include user interface components for MFA setup and management, API integration for MFA operations, and administrative controls for enforcing MFA policies.

Key changes:

  • Added MFA setup components and modals for both OTP and email-based authentication
  • Implemented administrative controls for bulk MFA policy management
  • Added MFA enforcement mechanisms during user authentication flow
  • Enhanced user profile and account management with MFA controls

Reviewed Changes

Copilot reviewed 64 out of 64 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/mirinae/src/controls/select-card/PSelectCard.vue Added readonly prop and styling for disabled state
packages/language-pack/*.json Added new translation keys for MFA-related UI text
packages/core-lib/src/space-connector/ Added methods for handling refresh token removal
apps/web/src/store/user/ Added required actions constants and type definitions
apps/web/src/services/my-page/ Implemented user MFA management components and modals
apps/web/src/services/iam/ Added administrative MFA controls and bulk operations
apps/web/src/services/auth/ Added MFA setup page and authentication flow
apps/web/src/common/components/mfa/ Created reusable MFA components for forms and validation
apps/web/src/api-clients/identity/ Enhanced API schemas with MFA-related parameters

"DELETE_SINGLE_MFA_SECRET_KEY_MODAL_DESC": "Deletes the Multi-factor Authentication(MFA) secret key for the selected user.",
"MFA_TYPE_NO_ACTIVE_METHOD": "No active method",
"MFA_TYPE_SELECT_FIELD_TITLE": "Multi-factor Authentication Method",
"MFA_TYPE_SELECT_FIELD_TOOLTIP_TEXT": ".",
Copy link

Copilot AI Aug 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The tooltip text contains only a period, which is not helpful for users. This should contain meaningful text explaining the MFA type selection field.

Suggested change
"MFA_TYPE_SELECT_FIELD_TOOLTIP_TEXT": ".",
"MFA_TYPE_SELECT_FIELD_TOOLTIP_TEXT": "Select the Multi-factor Authentication (MFA) method to be used for the selected users.",

Copilot uses AI. Check for mistakes.
"KEEP_ONLY_REMOVABLE_URERS": "Keep only removable users in the list below",
"MFA": {
"DELETE_MFA_SECRET_KEY_BUTTON_TEXT": "Delete MFA Secret Key",
"DELETE_MFA_SECRET_KEY_FAILED_MESSAGE": "",
Copy link

Copilot AI Aug 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The error message for failed MFA secret key deletion is empty, which will not provide users with helpful feedback when the operation fails.

Suggested change
"DELETE_MFA_SECRET_KEY_FAILED_MESSAGE": "",
"DELETE_MFA_SECRET_KEY_FAILED_MESSAGE": "Failed to delete MFA secret key. Please try again or contact support if the problem persists.",

Copilot uses AI. Check for mistakes.
const isSentCode = ref<boolean>(false);
const isVerified = ref<boolean>(false);

/* Components */
Copy link

Copilot AI Aug 11, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] Comment should be '/* Event Handlers /' or '/ Events */' to be more specific since it contains event handling functions, not component definitions.

Suggested change
/* Components */
/* Event Handlers */

Copilot uses AI. Check for mistakes.
Signed-off-by: Piggy Park (박용태) <samuel.park@megazone.com>
@piggggggggy piggggggggy force-pushed the feature-mfa-enhancement branch from 08bf70b to b3676e5 Compare August 11, 2025 11:31
@piggggggggy piggggggggy merged commit 3322d8f into develop Aug 11, 2025
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pass/signedoff self_approved/review Pull Request has been reviewed and approved by the author without requiring additional reviewers.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants