forked from TrueCloudLab/frostfs-node
[#1047] object: Set container owner ID property to ape request
* Introduce ContainerOwner field in RequestContext. * Set ContainerOwner in aclv2 middleware. * Set PropertyKeyContainerOwnerID for object ape request. Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
This commit is contained in:
parent
7278201753
commit
6959e617c4
6 changed files with 142 additions and 100 deletions
|
@ -8,11 +8,16 @@ import (
|
|||
objectV2 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object"
|
||||
checksumtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/checksum/test"
|
||||
objectSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/user"
|
||||
usertest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/user/test"
|
||||
nativeschema "git.frostfs.info/TrueCloudLab/policy-engine/schema/native"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
const (
|
||||
testOwnerID = "FPPtmAi9TCX329"
|
||||
)
|
||||
|
||||
func TestObjectProperties(t *testing.T) {
|
||||
for _, test := range []struct {
|
||||
name string
|
||||
|
@ -82,8 +87,12 @@ func TestObjectProperties(t *testing.T) {
|
|||
obj := newObjectIDSDK(t, test.object)
|
||||
header := newHeaderObjectSDK(cnr, obj, test.header)
|
||||
|
||||
props := objectProperties(cnr, obj, header.ToV2().GetHeader())
|
||||
var testCnrOwner user.ID
|
||||
require.NoError(t, testCnrOwner.DecodeString(testOwnerID))
|
||||
|
||||
props := objectProperties(cnr, obj, testCnrOwner, header.ToV2().GetHeader())
|
||||
require.Equal(t, test.container, props[nativeschema.PropertyKeyObjectContainerID])
|
||||
require.Equal(t, testOwnerID, props[nativeschema.PropertyKeyContainerOwnerID])
|
||||
|
||||
if obj != nil {
|
||||
require.Equal(t, *test.object, props[nativeschema.PropertyKeyObjectID])
|
||||
|
@ -210,13 +219,17 @@ func TestNewAPERequest(t *testing.T) {
|
|||
cnr := newContainerIDSDK(t, test.container)
|
||||
obj := newObjectIDSDK(t, test.object)
|
||||
|
||||
var testCnrOwner user.ID
|
||||
require.NoError(t, testCnrOwner.DecodeString(testOwnerID))
|
||||
|
||||
prm := Prm{
|
||||
Namespace: test.namespace,
|
||||
Method: method,
|
||||
Container: cnr,
|
||||
Object: obj,
|
||||
Role: role,
|
||||
SenderKey: senderKey,
|
||||
Namespace: test.namespace,
|
||||
Method: method,
|
||||
Container: cnr,
|
||||
Object: obj,
|
||||
Role: role,
|
||||
SenderKey: senderKey,
|
||||
ContainerOwner: testCnrOwner,
|
||||
}
|
||||
|
||||
headerSource := newHeaderProviderMock()
|
||||
|
@ -247,7 +260,7 @@ func TestNewAPERequest(t *testing.T) {
|
|||
operation: method,
|
||||
resource: &resource{
|
||||
name: resourceName(cnr, obj, prm.Namespace),
|
||||
properties: objectProperties(cnr, obj, func() *objectV2.Header {
|
||||
properties: objectProperties(cnr, obj, testCnrOwner, func() *objectV2.Header {
|
||||
if headerObjSDK != nil {
|
||||
return headerObjSDK.ToV2().GetHeader()
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue