]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: fix user.rgw.user-policy attr remove by modify user 59134/head
authorivan <i.makarychev@tinkoff.ru>
Mon, 2 Oct 2023 12:25:56 +0000 (15:25 +0300)
committerKonstantin Shalygin <k0ste@k0ste.ru>
Fri, 25 Oct 2024 15:41:38 +0000 (22:41 +0700)
Signed-off-by: ivan <i.makarychev@tinkoff.ru>
(cherry picked from commit e66e0b17f53ca3899ed082f4a010ec34561813a5)

src/rgw/driver/rados/rgw_user.cc
src/rgw/driver/rados/rgw_user.h

index 51b38c0829d1c53933d39fe39dab066e2b37af4c..46c7d448d3e242ac339c99a7e9329e2af5cbc171 100644 (file)
@@ -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();
index ea05de8063df7a73625862e35d3cad8fa58b23b4..33e23553c0c382002597df276e80f44cf43838fb 100644 (file)
@@ -305,6 +305,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;