}
}
-} // namespace rgw::swift
-
-void RGWAccessControlPolicy_SWIFT::to_str(string& read, string& write)
+void format_container_acls(const RGWAccessControlPolicy& policy,
+ std::string& read, std::string& write)
{
- multimap<string, ACLGrant>& m = acl.get_grant_map();
- multimap<string, ACLGrant>::iterator iter;
-
- for (iter = m.begin(); iter != m.end(); ++iter) {
- ACLGrant& grant = iter->second;
+ for (const auto& [k, grant] : policy.get_acl().get_grant_map()) {
const uint32_t perm = grant.get_permission().get_permissions();
rgw_user id;
string url_spec;
}
}
+} // namespace rgw::swift
+
void RGWAccessControlPolicy_SWIFTAcct::add_grants(const DoutPrefixProvider *dpp,
rgw::sal::Driver* driver,
const std::vector<std::string>& uids,
void merge_policy(uint32_t rw_mask, const RGWAccessControlPolicy& src,
RGWAccessControlPolicy& dest);
+/// Format the policy in terms of X-Container-Read/X-Container-Write strings.
+void format_container_acls(const RGWAccessControlPolicy& policy,
+ std::string& read, std::string& write);
+
} // namespace rgw::swift
class RGWAccessControlPolicy_SWIFT : public RGWAccessControlPolicy
{
-public:
- void to_str(std::string& read, std::string& write);
};
class RGWAccessControlPolicy_SWIFTAcct : public RGWAccessControlPolicy
}
if (rgw::sal::Object::empty(s->object.get())) {
- auto swift_policy = \
- static_cast<RGWAccessControlPolicy_SWIFT*>(s->bucket_acl.get());
std::string read_acl, write_acl;
- swift_policy->to_str(read_acl, write_acl);
+ rgw::swift::format_container_acls(*s->bucket_acl, read_acl, write_acl);
if (read_acl.size()) {
dump_header(s, "X-Container-Read", read_acl);