/* We can use global user_acl because LOs cannot have segments
* stored inside different accounts. */
- if (!verify_object_permission(s, s->user_acl.get(), bucket_policy,
- &obj_policy, RGW_PERM_READ)) {
+ if (s->system_request) {
+ ldout(s->cct, 2) << "overriding permissions due to system operation" << dendl;
+ } else if (s->auth_identity->is_admin_of(s->user->user_id)) {
+ ldout(s->cct, 2) << "overriding permissions due to admin operation" << dendl;
+ } else if (!verify_object_permission(s, s->user_acl.get(), bucket_policy,
+ &obj_policy, RGW_PERM_READ)) {
return -EPERM;
}