From: Abhishek Lekshmanan Date: Wed, 16 Aug 2017 12:07:43 +0000 (+0200) Subject: rgw: support for ExistingObjectTag for PutObjectTagging operation X-Git-Tag: v13.0.2~246^2~25 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=d34294f7eee774cfacffe8cc823b0cab52064b6f;p=ceph.git rgw: support for ExistingObjectTag for PutObjectTagging operation Signed-off-by: Abhishek Lekshmanan --- diff --git a/src/rgw/rgw_op.cc b/src/rgw/rgw_op.cc index 51af512df872..c08d27742c31 100644 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@ -785,10 +785,9 @@ void RGWGetObjTags::execute() int RGWPutObjTags::verify_permission() { - if (!verify_object_permission(s, - s->object.instance.empty() ? - rgw::IAM::s3PutObjectTagging: - rgw::IAM::s3PutObjectVersionTagging)) + iam_action = s->object.instance.empty() ? + rgw::IAM::s3PutObjectTagging: rgw::IAM::s3PutObjectVersionTagging; + if (!verify_object_permission(s,iam_action)) return -EACCES; return 0; } @@ -806,6 +805,7 @@ void RGWPutObjTags::execute() rgw_obj obj; obj = rgw_obj(s->bucket, s->object); + op_ret = rgw_iam_eval_existing_objtags(store, s, obj, iam_action); store->set_atomic(s->obj_ctx, obj); op_ret = modify_obj_attr(store, s, obj, RGW_ATTR_TAGS, tags_bl); if (op_ret == -ECANCELED){