#include <string.h>
-#include <list>
+#include <vector>
#include "common/ceph_json.h"
#include "rgw_common.h"
#define SWIFT_GROUP_ALL_USERS ".r:*"
-static int parse_list(const string& uid_list, list<string>& uids)
+static int parse_list(const std::string& uid_list,
+ std::vector<std::string>& uids) /* out */
{
char *s = strdup(uid_list.c_str());
if (!s) {
}
void RGWAccessControlPolicy_SWIFT::add_grants(RGWRados * const store,
- const list<string>& uids,
+ const std::vector<std::string>& uids,
const int perm)
{
for (const auto& uid : uids) {
owner.set_name(name);
if (read_list.size()) {
- list<string> uids;
+ std::vector<std::string> uids;
int r = parse_list(read_list, uids);
if (r < 0) {
ldout(cct, 0) << "ERROR: parse_list returned r=" << r << dendl;
add_grants(store, uids, SWIFT_PERM_READ);
}
if (write_list.size()) {
- list<string> uids;
+ std::vector<std::string> uids;
int r = parse_list(write_list, uids);
if (r < 0) {
ldout(cct, 0) << "ERROR: parse_list returned r=" << r << dendl;
}
void RGWAccessControlPolicy_SWIFTAcct::add_grants(RGWRados * const store,
- const list<string>& uids,
+ const std::vector<std::string>& uids,
const int perm)
{
for (const auto uid : uids) {
JSONObjIter iter = parser.find_first("admin");
if (!iter.end() && (*iter)->is_array()) {
- list<string> admin;
+ std::vector<std::string> admin;
decode_json_obj(admin, *iter);
ldout(cct, 0) << "admins: " << admin << dendl;
iter = parser.find_first("read-write");
if (!iter.end() && (*iter)->is_array()) {
- list<string> readwrite;
+ std::vector<std::string> readwrite;
decode_json_obj(readwrite, *iter);
ldout(cct, 0) << "read-write: " << readwrite << dendl;
iter = parser.find_first("read-only");
if (!iter.end() && (*iter)->is_array()) {
- list<string> readonly;
+ std::vector<std::string> readonly;
decode_json_obj(readonly, *iter);
ldout(cct, 0) << "read-only: " << readonly << dendl;
void RGWAccessControlPolicy_SWIFTAcct::to_str(std::string& acl_str) const
{
- list<string> admin;
- list<string> readwrite;
- list<string> readonly;
+ std::vector<std::string> admin;
+ std::vector<std::string> readwrite;
+ std::vector<std::string> readonly;
/* Parition the grant map into three not-overlapping groups. */
for (const auto item : get_acl().get_grant_map()) {
#ifndef CEPH_RGW_ACL_SWIFT_H
#define CEPH_RGW_ACL_SWIFT_H
-#include <list>
#include <map>
+#include <vector>
#include <string>
#include <include/types.h>
}
~RGWAccessControlPolicy_SWIFT() {}
- void add_grants(RGWRados *store, const std::list<string>& uids, int perm);
+ void add_grants(RGWRados *store,
+ const std::vector<std::string>& uids,
+ int perm);
bool create(RGWRados *store,
const rgw_user& id,
const std::string& name,
}
~RGWAccessControlPolicy_SWIFTAcct() {}
- void add_grants(RGWRados *store, const std::list<string>& uids, int perm);
+ void add_grants(RGWRados *store,
+ const std::vector<std::string>& uids,
+ int perm);
bool create(RGWRados *store,
const rgw_user& id,
const std::string& name,