Fixes: #8428
Backport: firefly
Cannot use verify_object_permission() to test acls, as the operation
here might either be on object or on bucket.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
int RGWPutMetadata::verify_permission()
{
- if (!verify_object_permission(s, RGW_PERM_WRITE))
- return -EACCES;
+ if (s->object) {
+ if (!verify_object_permission(s, RGW_PERM_WRITE))
+ return -EACCES;
+ } else {
+ if (!verify_bucket_permission(s, RGW_PERM_WRITE))
+ return -EACCES;
+ }
return 0;
}