-
Notifications
You must be signed in to change notification settings - Fork 40
feat: merge branch 'develop' into feature-query-integration #6133
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: merge branch 'develop' into feature-query-integration #6133
Conversation
* chore: update user mfa setting params and model Signed-off-by: samuel.park <[email protected]> * fix(user-table): add MFA management table action Signed-off-by: samuel.park <[email protected]> * feat(user-mfa): add user bulk MFA setting modal and mutation Signed-off-by: samuel.park <[email protected]> * feat(user-mfa): add user bulk MFA disable modal and mutation Signed-off-by: samuel.park <[email protected]> * chore: add MFA modal components to user management page Signed-off-by: samuel.park <[email protected]> * chore: add user MFA setting translations Signed-off-by: samuel.park <[email protected]> * feat(user-mfa-setting): add single user select case Signed-off-by: samuel.park <[email protected]> * chore: apply copilot reviews Signed-off-by: piggggggggy <[email protected]> * chore: apply changed planning Signed-off-by: samuel.park <[email protected]> --------- Signed-off-by: samuel.park <[email protected]> Signed-off-by: piggggggggy <[email protected]>
…arate mfa-disable button and modal (cloudforet-io#6038) * feat(modal-controller): creat modal-controller wrapper component Signed-off-by: samuel.park <[email protected]> * feat(MFA-disable): separate disable button & apply modal-controller Signed-off-by: samuel.park <[email protected]> * feat: apply separated MFA-disable button Signed-off-by: samuel.park <[email protected]> * chore: refactor mfa-disable mutation composable Signed-off-by: samuel.park <[email protected]> * chore: add translation Signed-off-by: samuel.park <[email protected]> * chore: small fix Signed-off-by: samuel.park <[email protected]> * chore: typo Signed-off-by: samuel.park <[email protected]> * chore: typo Signed-off-by: samuel.park <[email protected]> --------- Signed-off-by: samuel.park <[email protected]>
…6039) * chore: edit change MFA request Signed-off-by: samuel.park <[email protected]> * fix(mfa-setting): separate mfa-setting components Signed-off-by: samuel.park <[email protected]> * chore: apply separated components Signed-off-by: samuel.park <[email protected]> * fix(existing-user-modal): apply mfa-setting form section Signed-off-by: samuel.park <[email protected]> * chore: small fix Signed-off-by: samuel.park <[email protected]> * chore: edit annotations Signed-off-by: samuel.park <[email protected]> --------- Signed-off-by: samuel.park <[email protected]>
Signed-off-by: NaYeong,Kim <[email protected]>
Signed-off-by: NaYeong,Kim <[email protected]>
* fix: fix api endpoint blocking by version Signed-off-by: NaYeong,Kim <[email protected]> * chore: removed unnecessary code Signed-off-by: NaYeong,Kim <[email protected]> --------- Signed-off-by: NaYeong,Kim <[email protected]>
Signed-off-by: admin-cloudforet <[email protected]>
…oudforet-io#6046) * feat(mfa): create mfa query composables Signed-off-by: samuel.park <[email protected]> * chore: add disable-mfa user-profile verb Signed-off-by: samuel.park <[email protected]> * feat(mfa): create mfa form component Signed-off-by: samuel.park <[email protected]> * feat(mfa): create mfa setting modals Signed-off-by: samuel.park <[email protected]> * feat: apply refactored modals Signed-off-by: samuel.park <[email protected]> * refactor(mfa): refactor mfa UI component and mfa modals Signed-off-by: samuel.park <[email protected]> * feat(mfa): apply new design (my-page mfa) Signed-off-by: samuel.park <[email protected]> * chore: small fix Signed-off-by: samuel.park <[email protected]> --------- Signed-off-by: samuel.park <[email protected]>
…udforet-io#6047) * chore: chore fix Signed-off-by: samuel.park <[email protected]> * feat(mfa-setup): create mfa setup page Signed-off-by: samuel.park <[email protected]> * fix(mfa-setup): refactor mfa-setup scenario flow Signed-off-by: samuel.park <[email protected]> * chore: translation Signed-off-by: samuel.park <[email protected]> * chore(my-page): solve verified mfa method bug Signed-off-by: samuel.park <[email protected]> --------- Signed-off-by: samuel.park <[email protected]>
…ret-io#6048) Signed-off-by: samuel.park <[email protected]>
Signed-off-by: samuel.park <[email protected]>
* fix(mfa): solve switching mfa-type bug Signed-off-by: samuel.park <[email protected]> * feat(user-form-modal): apply vue query for sync Signed-off-by: samuel.park <[email protected]> * fix(user-cache): apply user cache sync to userProfile Signed-off-by: samuel.park <[email protected]> * fix(my-account): solve mfa resync bug Signed-off-by: samuel.park <[email protected]> * chore: fix ui (info-tooltip) Signed-off-by: samuel.park <[email protected]> * chore: solve type lint error Signed-off-by: samuel.park <[email protected]> --------- Signed-off-by: samuel.park <[email protected]>
Signed-off-by: samuel.park <[email protected]>
* fix: fix tag column bug in user page Signed-off-by: yuda <[email protected]> * fix: fix tag column bug in user page Signed-off-by: yuda <[email protected]> --------- Signed-off-by: yuda <[email protected]>
…io#6077) Signed-off-by: sulmo <[email protected]>
* chore: mfa minor QAs Signed-off-by: samuel.park <[email protected]> * chore: minor design fix Signed-off-by: samuel.park <[email protected]> * chore: solve email resent issue Signed-off-by: samuel.park <[email protected]> * chore: minor refactoring Signed-off-by: samuel.park <[email protected]> --------- Signed-off-by: samuel.park <[email protected]>
…o#6114) Signed-off-by: NaYeong,Kim <[email protected]>
Signed-off-by: Piggy Park (박용태) <[email protected]>
feat(mfa): implementation new mfa feature
Signed-off-by: 이승연 <[email protected]>
Signed-off-by: 이승연 <[email protected]>
The latest updates on your projects. Learn more about Vercel for GitHub. 4 Skipped Deployments
|
✅ Why it is requiredThe Developer Certificate of Origin (DCO) is a lightweight way for contributors to certify that they wrote or otherwise have the right to submit the code they are contributing to the project. Here is the full text of the DCO. Contributors sign-off that they adhere to these requirements by adding a
Git even has a
|
🎉 @skdud4659 has been randomly selected as the reviewer! Please review. 🙏 |
There was a problem hiding this 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 PR merges the 'develop' branch into the 'feature-query-integration' branch, bringing together multiple feature additions and improvements including Multi-Factor Authentication (MFA) functionality, user interface updates, and infrastructure changes.
- Adds comprehensive MFA setup and management functionality with support for OTP and Email authentication
- Updates UI components including a new readonly mode for select cards and improved modal management
- Removes service configuration functionality from core library and updates authentication flows
Reviewed Changes
Copilot reviewed 72 out of 73 changed files in this pull request and generated 7 comments.
Show a summary per file
File | Description |
---|---|
packages/mirinae/src/controls/select-card/PSelectCard.vue | Adds readonly prop and styling for disabled/readonly states |
packages/language-pack/*.json | Adds new translation keys for MFA functionality across multiple languages |
packages/core-lib/src/space-connector/*.ts | Removes service config logic and adds refresh token removal method |
apps/web/src/services/my-page/components/* | Refactors MFA components to use new modal system |
apps/web/src/services/iam/components/mfa/* | Adds new MFA management components for bulk operations |
apps/web/src/services/auth/pages/MultiFactorAuthSetUpPage.vue | Adds new MFA setup page for authentication flow |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
"AUTHENTICATION_CODE_LOWER": "인증 코드", | ||
"CONFIRM": "확인", | ||
"EMAIL_INFO": "계정 로그인을 위한 멀티 팩터 인증(MFA)을 지원합니다. 인증 코드가 이메일 주소로 전송되었습니다:", | ||
"ENFORCE_INFO_TEXT": "", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Empty translation strings should be filled with appropriate Korean translations or marked as TODO for future completion.
"ENFORCE_INFO_TEXT": "", | |
"ENFORCE_INFO_TEXT": "TODO", |
Copilot uses AI. Check for mistakes.
"AUTHENTICATION_CODE_LOWER": "認証コード", | ||
"CONFIRM": "確認", | ||
"EMAIL_INFO": "アカウントログインのためのマルチファクタ認証(MFA)をサポートします。認証コードがメールアドレスに送信されました:", | ||
"ENFORCE_INFO_TEXT": "", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Empty translation strings should be filled with appropriate Japanese translations or marked as TODO for future completion.
"ENFORCE_INFO_TEXT": "", | |
"ENFORCE_INFO_TEXT": "TODO", |
Copilot uses AI. Check for mistakes.
passwordFormState.invalidText = ''; | ||
passwordFormState.passwordCheckModalVisible = false; | ||
showSuccessMessage(i18n.t('COMMON.PROFILE.SUCCESS_PASSWORD_CHECK')); | ||
showSuccessMessage(i18n.t('COMMON.PROFILE.SUCCESS_PASSWORD_CHECK'), ''); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Passing an empty string as the second parameter to showSuccessMessage is unclear. Consider using a more explicit parameter name or documenting the purpose of this parameter.
showSuccessMessage(i18n.t('COMMON.PROFILE.SUCCESS_PASSWORD_CHECK'), ''); | |
showSuccessMessage(i18n.t('COMMON.PROFILE.SUCCESS_PASSWORD_CHECK'), SUCCESS_MESSAGE_NO_TITLE); |
Copilot uses AI. Check for mistakes.
} | ||
} else if (selected === MULTI_FACTOR_AUTH_TYPE.OTP) { | ||
multiFactorAuthStore.setOTPDisableModalVisible(true); | ||
await userProfileAPI.disableMfa({}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Passing an empty object to disableMfa() may be incorrect. Verify that this API call doesn't require any parameters or consider making the parameter requirement explicit.
await userProfileAPI.disableMfa({}); | |
await userProfileAPI.disableMfa(); |
Copilot uses AI. Check for mistakes.
} = route.params as { mfaType: MultiFactorAuthType | undefined }; | ||
const state = reactive({ | ||
// isLocalLogin: computed<boolean>(() => userStore.state.authType === 'LOCAL'), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove commented out code that is no longer needed. If this logic may be needed in the future, consider documenting why it's commented out.
// isLocalLogin: computed<boolean>(() => userStore.state.authType === 'LOCAL'), |
Copilot uses AI. Check for mistakes.
if (!oneNumberValidator(value)) return i18n.t('IDENTITY.USER.FORM.ONE_NUMBER_INVALID'); | ||
const passwordRegex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}$/; | ||
if (!passwordRegex.test(value)) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The password validation regex is duplicated in multiple files. Consider extracting this to a shared constant or utility function to ensure consistency and easier maintenance.
if (!passwordRegex.test(value)) { | |
if (!PASSWORD_REGEX.test(value)) { |
Copilot uses AI. Check for mistakes.
import { useProxyValue } from '@/common/composables/proxy-state'; | ||
const RE_SEND_CODE_COOLDOWN_TIME = 10000; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Magic number for cooldown time should be extracted to a configuration file or constant. Consider making this configurable based on security requirements.
Copilot uses AI. Check for mistakes.
Signed-off-by: 이승연 <[email protected]>
✅ Why it is requiredThe Developer Certificate of Origin (DCO) is a lightweight way for contributors to certify that they wrote or otherwise have the right to submit the code they are contributing to the project. Here is the full text of the DCO. Contributors sign-off that they adhere to these requirements by adding a
Git even has a
|
Signed-off-by: 이승연 <[email protected]>
✅ Why it is requiredThe Developer Certificate of Origin (DCO) is a lightweight way for contributors to certify that they wrote or otherwise have the right to submit the code they are contributing to the project. Here is the full text of the DCO. Contributors sign-off that they adhere to these requirements by adding a
Git even has a
|
Signed-off-by: 이승연 <[email protected]>
✅ Why it is requiredThe Developer Certificate of Origin (DCO) is a lightweight way for contributors to certify that they wrote or otherwise have the right to submit the code they are contributing to the project. Here is the full text of the DCO. Contributors sign-off that they adhere to these requirements by adding a
Git even has a
|
Signed-off-by: 이승연 <[email protected]>
✅ Why it is requiredThe Developer Certificate of Origin (DCO) is a lightweight way for contributors to certify that they wrote or otherwise have the right to submit the code they are contributing to the project. Here is the full text of the DCO. Contributors sign-off that they adhere to these requirements by adding a
Git even has a
|
b20412e
into
cloudforet-io:feature-query-integration
Skip Review (optional)
style
,chore
,ci
,test
,docs
)Description (optional)
Things to Talk About (optional)