From e66e0b17f53ca3899ed082f4a010ec34561813a5 Mon Sep 17 00:00:00 2001 From: ivan Date: Mon, 2 Oct 2023 15:25:56 +0300 Subject: [PATCH] rgw: fix user.rgw.user-policy attr remove by modify user Signed-off-by: ivan --- src/rgw/driver/rados/rgw_user.cc | 10 ++++++++++ src/rgw/driver/rados/rgw_user.h | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/src/rgw/driver/rados/rgw_user.cc b/src/rgw/driver/rados/rgw_user.cc index 4e70c85522213..469fe6fe68fd2 100644 --- a/src/rgw/driver/rados/rgw_user.cc +++ b/src/rgw/driver/rados/rgw_user.cc @@ -295,6 +295,15 @@ void RGWUserAdminOpState::set_user_version_tracker(RGWObjVersionTracker& objv_tr user->get_version_tracker() = objv_tracker; } +void RGWUserAdminOpState::set_attrs(rgw::sal::Attrs& attrs) +{ + user->get_attrs() = attrs; +} + +rgw::sal::Attrs RGWUserAdminOpState::get_attrs() { + return user->get_attrs(); +} + const rgw_user& RGWUserAdminOpState::get_user_id() { return user->get_id(); @@ -1386,6 +1395,7 @@ int RGWUser::init(const DoutPrefixProvider *dpp, RGWUserAdminOpState& op_state, op_state.set_existing_user(found); if (found) { + op_state.set_attrs(user->get_attrs()); op_state.set_user_info(user->get_info()); op_state.set_populated(); op_state.objv = user->get_version_tracker(); diff --git a/src/rgw/driver/rados/rgw_user.h b/src/rgw/driver/rados/rgw_user.h index aca905774a951..d5eb167daa3fb 100644 --- a/src/rgw/driver/rados/rgw_user.h +++ b/src/rgw/driver/rados/rgw_user.h @@ -313,6 +313,10 @@ struct RGWUserAdminOpState { max_buckets_specified = true; } + rgw::sal::Attrs get_attrs(); + + void set_attrs(rgw::sal::Attrs& attrs); + void set_gen_access() { gen_access = true; key_op = true; -- 2.39.5