]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/acl/swift: add_grants() as static free function
authorCasey Bodley <cbodley@redhat.com>
Thu, 16 Nov 2023 18:43:19 +0000 (13:43 -0500)
committerCasey Bodley <cbodley@redhat.com>
Thu, 30 Nov 2023 15:40:45 +0000 (10:40 -0500)
Signed-off-by: Casey Bodley <cbodley@redhat.com>
src/rgw/rgw_acl_swift.cc
src/rgw/rgw_acl_swift.h

index 8ba3003ec185d726395122059ed2f85f83a99a30..55766a336135718c1f9952a6b19e43c10fb886cc 100644 (file)
@@ -151,6 +151,22 @@ static auto parse_grant(const DoutPrefixProvider* dpp,
   return std::nullopt;
 }
 
+static void add_grants(const DoutPrefixProvider* dpp,
+                       rgw::sal::Driver* driver,
+                       const std::vector<std::string>& uids,
+                       uint32_t perm, RGWAccessControlList& acl)
+{
+  for (const auto& uid : uids) {
+    ACLGrant grant;
+    if (uid_is_public(uid)) {
+      grant.set_group(ACL_GROUP_ALL_USERS, perm);
+    } else  {
+      grant = user_to_grant(dpp, driver, uid, perm);
+    }
+    acl.add_grant(grant);
+  }
+}
+
 namespace rgw::swift {
 
 int create_container_policy(const DoutPrefixProvider *dpp,
@@ -264,23 +280,6 @@ void format_container_acls(const RGWAccessControlPolicy& policy,
 
 } // namespace rgw::swift
 
-void RGWAccessControlPolicy_SWIFTAcct::add_grants(const DoutPrefixProvider *dpp,
-                                                 rgw::sal::Driver* driver,
-                                                  const std::vector<std::string>& uids,
-                                                  const uint32_t perm)
-{
-  for (const auto& uid : uids) {
-    ACLGrant grant;
-
-    if (uid_is_public(uid)) {
-      grant.set_group(ACL_GROUP_ALL_USERS, perm);
-    } else  {
-      grant = user_to_grant(dpp, driver, uid, perm);
-    }
-    acl.add_grant(grant);
-  }
-}
-
 bool RGWAccessControlPolicy_SWIFTAcct::create(const DoutPrefixProvider *dpp,
                                              rgw::sal::Driver* driver,
                                               const rgw_user& id,
@@ -304,7 +303,7 @@ bool RGWAccessControlPolicy_SWIFTAcct::create(const DoutPrefixProvider *dpp,
     decode_json_obj(admin, *iter);
     ldpp_dout(dpp, 0) << "admins: " << admin << dendl;
 
-    add_grants(dpp, driver, admin, SWIFT_PERM_ADMIN);
+    add_grants(dpp, driver, admin, SWIFT_PERM_ADMIN, acl);
   }
 
   iter = parser.find_first("read-write");
@@ -313,7 +312,7 @@ bool RGWAccessControlPolicy_SWIFTAcct::create(const DoutPrefixProvider *dpp,
     decode_json_obj(readwrite, *iter);
     ldpp_dout(dpp, 0) << "read-write: " << readwrite << dendl;
 
-    add_grants(dpp, driver, readwrite, SWIFT_PERM_RWRT);
+    add_grants(dpp, driver, readwrite, SWIFT_PERM_RWRT, acl);
   }
 
   iter = parser.find_first("read-only");
@@ -322,7 +321,7 @@ bool RGWAccessControlPolicy_SWIFTAcct::create(const DoutPrefixProvider *dpp,
     decode_json_obj(readonly, *iter);
     ldpp_dout(dpp, 0) << "read-only: " << readonly << dendl;
 
-    add_grants(dpp, driver, readonly, SWIFT_PERM_READ);
+    add_grants(dpp, driver, readonly, SWIFT_PERM_READ, acl);
   }
 
   return true;
index 8bc70eac7b0ef0263776531287bd242753713a53..68ddf3d95269db71cd2d840b826a67e844cc0429 100644 (file)
@@ -44,8 +44,6 @@ class RGWAccessControlPolicy_SWIFT : public RGWAccessControlPolicy
 
 class RGWAccessControlPolicy_SWIFTAcct : public RGWAccessControlPolicy
 {
-  void add_grants(const DoutPrefixProvider* dpp, rgw::sal::Driver* driver,
-                  const std::vector<std::string>& uids, uint32_t perm);
 public:
   bool create(const DoutPrefixProvider *dpp,
              rgw::sal::Driver* driver,