From: Casey Bodley Date: Wed, 19 Sep 2018 14:37:38 +0000 (-0400) Subject: Merge pull request #23544 from joke-lee/wip-multiobjdelete-num-limit X-Git-Tag: v14.0.1~248 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=c7a8daf0a9173a20d58fd4d9c742707192b4b201;p=ceph-ci.git Merge pull request #23544 from joke-lee/wip-multiobjdelete-num-limit rgw: delete multi object num limit Reviewed-by: Matt Benjamin --- c7a8daf0a9173a20d58fd4d9c742707192b4b201 diff --cc src/rgw/rgw_op.cc index 3267060276b,5a37e7b9e52..0dbcec12c77 --- a/src/rgw/rgw_op.cc +++ b/src/rgw/rgw_op.cc @@@ -6153,20 -6038,10 +6163,20 @@@ void RGWDeleteMultiObj::execute( } for (iter = multi_delete->objects.begin(); - iter != multi_delete->objects.end() && num_processed < max_to_delete; - ++iter, num_processed++) { + iter != multi_delete->objects.end(); + ++iter) { rgw_obj obj(bucket, *iter); - if (s->iam_policy) { + if (s->iam_policy || ! s->iam_user_policies.empty()) { + auto usr_policy_res = eval_user_policies(s->iam_user_policies, s->env, + *s->auth.identity, + iter->instance.empty() ? + rgw::IAM::s3DeleteObject : + rgw::IAM::s3DeleteObjectVersion, + obj); + if (usr_policy_res == Effect::Deny) { + send_partial_response(*iter, false, "", -EACCES); + continue; + } auto e = s->iam_policy->eval(s->env, *s->auth.identity, iter->instance.empty() ?