From 35db2ea4d56e6841b898135eb279e9de00842995 Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Thu, 16 Feb 2012 15:03:11 -0800 Subject: [PATCH] rgw: set default acls for certain swift operations Signed-off-by: Yehuda Sadeh --- src/rgw/rgw_op.cc | 1 - src/rgw/rgw_rest.cc | 3 +-- src/rgw/rgw_rest_s3.cc | 2 +- src/rgw/rgw_rest_swift.cc | 17 +++++++++++++++++ src/rgw/rgw_rest_swift.h | 2 ++ 5 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 276e9f3b36cf1..4c82057be64fe 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -254,7 +254,6 @@ static int read_acls(struct req_state *s, bool only_bucket, bool prefetch_data) return -ENOMEM; } - RGWBucketInfo bucket_info; if (s->bucket_name_str.size()) { ret = rgwstore->get_bucket_info(s->obj_ctx, s->bucket_name_str, bucket_info); diff --git a/src/rgw/rgw_rest.cc b/src/rgw/rgw_rest.cc index fee950bcd25ee..917caaa981c6c 100644 --- a/src/rgw/rgw_rest.cc +++ b/src/rgw/rgw_rest.cc @@ -528,13 +528,12 @@ static int init_entities_from_header(struct req_state *s) s->bucket_name = strdup(s->bucket_name_str.c_str()); if (req.size()) { - req = s->object_str; + s->object_str = req; s->object = strdup(s->object_str.c_str()); } goto done; } - if (!s->bucket_name) { s->bucket_name_str = first; s->bucket_name = strdup(s->bucket_name_str.c_str()); diff --git a/src/rgw/rgw_rest_s3.cc b/src/rgw/rgw_rest_s3.cc index 0e6ffda687a17..4a2387b9c41a0 100644 --- a/src/rgw/rgw_rest_s3.cc +++ b/src/rgw/rgw_rest_s3.cc @@ -253,7 +253,7 @@ int RGWCopyObj_REST_S3::init_dest_policy() { RGWAccessControlPolicy_S3 s3policy; - /* build a polict for the target object */ + /* build a policy for the target object */ ret = s3policy.create_canned(s->user.user_id, s->user.display_name, s->canned_acl); if (!ret) return -EINVAL; diff --git a/src/rgw/rgw_rest_swift.cc b/src/rgw/rgw_rest_swift.cc index 10ef17b3a2c9f..9c39a24133068 100644 --- a/src/rgw/rgw_rest_swift.cc +++ b/src/rgw/rgw_rest_swift.cc @@ -235,6 +235,13 @@ void RGWStatBucket_REST_SWIFT::send_response() dump_start(s); } +int RGWCreateBucket_REST_SWIFT::get_params() +{ + policy.create_default(s->user.user_id, s->user.display_name); + + return 0; +} + void RGWCreateBucket_REST_SWIFT::send_response() { if (!ret) @@ -285,6 +292,9 @@ int RGWPutObj_REST_SWIFT::get_params() } } } + + policy.create_default(s->user.user_id, s->user.display_name); + return RGWPutObj_REST::get_params(); } @@ -328,6 +338,13 @@ void RGWDeleteObj_REST_SWIFT::send_response() flush_formatter_to_req_state(s, s->formatter); } +int RGWCopyObj_REST_SWIFT::init_dest_policy() +{ + dest_policy.create_default(s->user.user_id, s->user.display_name); + + return 0; +} + int RGWCopyObj_REST_SWIFT::get_params() { if_mod = s->env->get("HTTP_IF_MODIFIED_SINCE"); diff --git a/src/rgw/rgw_rest_swift.h b/src/rgw/rgw_rest_swift.h index a27a906a9d34e..da2e00bfe04f5 100644 --- a/src/rgw/rgw_rest_swift.h +++ b/src/rgw/rgw_rest_swift.h @@ -62,6 +62,7 @@ public: RGWCreateBucket_REST_SWIFT() {} ~RGWCreateBucket_REST_SWIFT() {} + int get_params(); void send_response(); }; @@ -104,6 +105,7 @@ public: RGWCopyObj_REST_SWIFT() {} ~RGWCopyObj_REST_SWIFT() {} + int init_dest_policy(); int get_params(); void send_response(); }; -- 2.39.5