diff --git a/src/spaceone/identity/service/user_profile_service.py b/src/spaceone/identity/service/user_profile_service.py index cc9a4cec..a26e8778 100644 --- a/src/spaceone/identity/service/user_profile_service.py +++ b/src/spaceone/identity/service/user_profile_service.py @@ -370,13 +370,15 @@ def confirm_mfa( update_require_actions.add("ENFORCE_MFA") user_mfa["options"] = {"enforce": mfa_enforce} user_mfa["mfa_type"] = mfa_type + + else: + user_mfa.pop("mfa_type", None) + user_mfa.pop("options", None) user_mfa["state"] = "DISABLED" elif mfa_state == "DISABLED": update_require_actions.discard("ENFORCE_MFA") user_mfa["state"] = "ENABLED" - if not mfa_enforce: - user_mfa.pop("mfa_type", None) user_vo = self.user_mgr.update_user_by_vo( {"mfa": user_mfa, "required_actions": list(update_require_actions)}, diff --git a/src/spaceone/identity/service/user_service.py b/src/spaceone/identity/service/user_service.py index e3b301ec..a8682810 100644 --- a/src/spaceone/identity/service/user_service.py +++ b/src/spaceone/identity/service/user_service.py @@ -247,11 +247,13 @@ def update(self, params: UserUpdateRequest) -> Union[UserResponse, dict]: ), ) - update_require_actions = self._get_updated_required_actions( - user_vo_mfa, - list(update_require_actions), - mfa_enforce, - enforce_mfa_type, + update_require_actions = set( + self._get_updated_required_actions( + user_vo_mfa, + list(update_require_actions), + mfa_enforce, + enforce_mfa_type, + ) ) update_user_vo["required_actions"] = list(update_require_actions)