int RGWDeleteMultiObj::verify_permission(optional_yield y)
{
+ int op_ret = get_params();
+ if (op_ret) {
+ return op_ret;
+ }
+
if (s->iam_policy || ! s->iam_user_policies.empty()) {
if (s->bucket->get_info().obj_lock_enabled() && bypass_governance_mode) {
auto r = eval_user_policies(s->iam_user_policies, s->env, boost::none,
}
}
}
+
+ bool empty = rgw::sal::RGWObject::empty(s->object.get()) || s->object->get_instance().empty();
+
auto usr_policy_res = eval_user_policies(s->iam_user_policies, s->env,
boost::none,
- s->object->get_instance().empty() ?
+ empty ?
rgw::IAM::s3DeleteObject :
rgw::IAM::s3DeleteObjectVersion,
ARN(s->bucket->get_key()));
rgw::IAM::Effect r = Effect::Pass;
if (s->iam_policy) {
r = s->iam_policy->eval(s->env, *s->auth.identity,
- s->object->get_instance().empty() ?
+ empty ?
rgw::IAM::s3DeleteObject :
rgw::IAM::s3DeleteObjectVersion,
ARN(s->bucket->get_key()));
RGWObjectCtx *obj_ctx = static_cast<RGWObjectCtx *>(s->obj_ctx);
char* buf;
- op_ret = get_params(y);
- if (op_ret < 0) {
- goto error;
- }
-
buf = data.c_str();
if (!buf) {
op_ret = -EINVAL;