Allow governance retention to be overridden by a suitably privileged user.
Fixes: http://tracker.ceph.com/issues/47586
Signed-off-by: Mark Houghton <mhoughton@microfocus.com>
(cherry picked from commit
6989da1bcbe59e4d561c9d16f0ff891f6c6ef567)
Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
Conflicts:
src/rgw/rgw_op.cc
bool quiet;
bool status_dumped;
bool acl_allowed = false;
+ bool bypass_perm;
+ bool bypass_governance_mode;
+
public:
RGWDeleteMultiObj() {
quiet = false;
status_dumped = false;
+ bypass_perm = true;
+ bypass_governance_mode = false;
}
int verify_permission() override;
void pre_exec() override;
return ret;
}
+ const char *bypass_gov_header = s->info.env->get("HTTP_X_AMZ_BYPASS_GOVERNANCE_RETENTION");
+ if (bypass_gov_header) {
+ std::string bypass_gov_decoded = url_decode(bypass_gov_header);
+ bypass_governance_mode = boost::algorithm::iequals(bypass_gov_decoded, "true");
+ }
+
return do_aws4_auth_completion();
}