From 04cb644a58200943ff85eec6c8aecaf09b3ad68f Mon Sep 17 00:00:00 2001 From: daeyeon ko Date: Thu, 4 Sep 2025 21:30:56 +0900 Subject: [PATCH] fix: fix user update required actions process Signed-off-by: daeyeon ko --- src/spaceone/identity/service/user_service.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/spaceone/identity/service/user_service.py b/src/spaceone/identity/service/user_service.py index cc34b317..1fea82ee 100644 --- a/src/spaceone/identity/service/user_service.py +++ b/src/spaceone/identity/service/user_service.py @@ -195,9 +195,10 @@ def update(self, params: UserUpdateRequest) -> Union[UserResponse, dict]: user_vo = self.user_mgr.get_user(params.user_id, params.domain_id) auth_type = user_vo.auth_type domain_id = params.domain_id + required_actions = user_vo.required_actions update_user_vo = {} - update_require_actions = set(user_vo.required_actions) + update_require_actions = set(required_actions) if params.reset_password: domain_name = self._get_domain_name(domain_id) @@ -266,16 +267,19 @@ def update(self, params: UserUpdateRequest) -> Union[UserResponse, dict]: ) ) - update_user_vo["required_actions"] = list(update_require_actions) - general_params = params.dict( - exclude_unset=True, exclude={"reset_password", "mfa"} + exclude_unset=True, + exclude={"reset_password", "enforce_mfa_state", "enforce_mfa_type"}, ) update_user_vo.update(general_params) - update_user_vo["required_actions"] = list(update_require_actions) user_vo = self.user_mgr.update_user_by_vo(update_user_vo, user_vo) + if update_require_actions != (set(required_actions)): + user_vo = self.user_mgr.update_user_by_vo( + {"required_actions": list(update_require_actions)}, user_vo + ) + return UserResponse(**user_vo.to_dict()) @transaction(permission="identity:User.write", role_types=["DOMAIN_ADMIN"])