]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw: add support for ExistingObjectTag in DeleteObjectTagging
authorAbhishek Lekshmanan <abhishek@suse.com>
Thu, 17 Aug 2017 12:54:51 +0000 (14:54 +0200)
committerAbhishek Lekshmanan <abhishek@suse.com>
Wed, 17 Jan 2018 10:28:56 +0000 (11:28 +0100)
Signed-off-by: Abhishek Lekshmanan <abhishek@suse.com>
src/rgw/rgw_op.cc

index 8be04faf859c3135ed2594f75a67546348169840..a3ead1ffd1b16e011f057ab1f272b1560ce23fe2 100644 (file)
@@ -830,10 +830,10 @@ void RGWDeleteObjTags::pre_exec()
 int RGWDeleteObjTags::verify_permission()
 {
   if (!s->object.empty()) {
-    if (!verify_object_permission(s,
-                                 s->object.instance.empty() ?
-                                 rgw::IAM::s3DeleteObjectTagging:
-                                 rgw::IAM::s3DeleteObjectVersionTagging))
+    iam_action = s->object.instance.empty() ?
+      rgw::IAM::s3DeleteObjectTagging:
+      rgw::IAM::s3DeleteObjectVersionTagging;
+    if (!verify_object_permission(s, iam_action))
       return -EACCES;
   }
   return 0;
@@ -846,6 +846,7 @@ void RGWDeleteObjTags::execute()
 
   rgw_obj obj;
   obj = rgw_obj(s->bucket, s->object);
+  rgw_iam_eval_existing_objtags(store, s, obj, iam_action);
   store->set_atomic(s->obj_ctx, obj);
   map <string, bufferlist> attrs;
   map <string, bufferlist> rmattr;