From d2d1a87731f0f89cd3c4b7f15923bf09d8dbf00b Mon Sep 17 00:00:00 2001 From: Casey Bodley Date: Thu, 16 Nov 2023 13:43:19 -0500 Subject: [PATCH] rgw/acl/swift: add_grants() as static free function Signed-off-by: Casey Bodley --- src/rgw/rgw_acl_swift.cc | 39 +++++++++++++++++++-------------------- src/rgw/rgw_acl_swift.h | 2 -- 2 files changed, 19 insertions(+), 22 deletions(-) diff --git a/src/rgw/rgw_acl_swift.cc b/src/rgw/rgw_acl_swift.cc index 8ba3003ec18..55766a33613 100644 --- a/src/rgw/rgw_acl_swift.cc +++ b/src/rgw/rgw_acl_swift.cc @@ -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& 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& 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; diff --git a/src/rgw/rgw_acl_swift.h b/src/rgw/rgw_acl_swift.h index 8bc70eac7b0..68ddf3d9526 100644 --- a/src/rgw/rgw_acl_swift.h +++ b/src/rgw/rgw_acl_swift.h @@ -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& uids, uint32_t perm); public: bool create(const DoutPrefixProvider *dpp, rgw::sal::Driver* driver, -- 2.39.5