diff --git a/pkg/acl/common/keychain.go b/pkg/acl/common/keychain.go index 2842ae5e..d90965c6 100644 --- a/pkg/acl/common/keychain.go +++ b/pkg/acl/common/keychain.go @@ -21,7 +21,7 @@ func (k *Keychain) GetOrAdd(identity string) (signingkey.PubKey, error) { if key, exists := k.keys[identity]; exists { return key, nil } - res, err := k.decoder.DecodeFromString(identity) + res, err := k.decoder.DecodeFromBytes([]byte(identity)) if err != nil { return nil, err } diff --git a/pkg/acl/tree/changebuilder.go b/pkg/acl/tree/changebuilder.go index 3a2f0701..67985c82 100644 --- a/pkg/acl/tree/changebuilder.go +++ b/pkg/acl/tree/changebuilder.go @@ -60,13 +60,15 @@ func (c *changeBuilder) ConvertFromRaw(rawIdChange *aclpb.RawTreeChangeWithId, v } if verify { - identityKey, err := c.keys.GetOrAdd(ch.Identity) + var identityKey signingkey.PubKey + identityKey, err = c.keys.GetOrAdd(ch.Identity) if err != nil { return } // verifying signature - res, err := identityKey.Verify(raw.Payload, raw.Signature) + var res bool + res, err = identityKey.Verify(raw.Payload, raw.Signature) if err != nil { return } diff --git a/pkg/acl/tree/changevalidator.go b/pkg/acl/tree/changevalidator.go index 1dfac831..bbc337cf 100644 --- a/pkg/acl/tree/changevalidator.go +++ b/pkg/acl/tree/changevalidator.go @@ -43,7 +43,7 @@ func (v *objectTreeValidator) validateChange(tree *Tree, aclList list.ACLList, c state = aclList.ACLState() ) // checking if the user could write - perm, err = state.PermissionsAtRecord(c.Content.AclHeadId, c.Content.Identity) + perm, err = state.PermissionsAtRecord(c.Content.AclHeadId, c.Identity) if err != nil { return } diff --git a/pkg/acl/tree/objecttree_test.go b/pkg/acl/tree/objecttree_test.go index c73ce3ff..6e43d8d3 100644 --- a/pkg/acl/tree/objecttree_test.go +++ b/pkg/acl/tree/objecttree_test.go @@ -14,7 +14,7 @@ import ( type mockChangeCreator struct{} -func (c *mockChangeCreator) createRaw(id, aclId, snapshotId string, isSnapshot bool, prevIds ...string) *aclpb.RawChange { +func (c *mockChangeCreator) createRaw(id, aclId, snapshotId string, isSnapshot bool, prevIds ...string) *aclpb.RawTreeChangeWithId { aclChange := &aclpb.TreeChange{ TreeHeadIds: prevIds, AclHeadId: aclId, @@ -51,19 +51,15 @@ type mockChangeBuilder struct { originalBuilder ChangeBuilder } -func (c *mockChangeBuilder) ConvertFromRaw(rawChange *aclpb.RawChange) (ch *Change, err error) { - return c.originalBuilder.ConvertFromRaw(rawChange) +func (c *mockChangeBuilder) ConvertFromRaw(rawChange *aclpb.RawTreeChangeWithId, verify bool) (ch *Change, err error) { + return c.originalBuilder.ConvertFromRaw(rawChange, false) } -func (c *mockChangeBuilder) ConvertFromRawAndVerify(rawChange *aclpb.RawChange) (ch *Change, err error) { - return c.originalBuilder.ConvertFromRaw(rawChange) -} - -func (c *mockChangeBuilder) BuildContent(payload BuilderContent) (ch *Change, raw *aclpb.RawChange, err error) { +func (c *mockChangeBuilder) BuildContent(payload BuilderContent) (ch *Change, raw *aclpb.RawTreeChangeWithId, err error) { panic("implement me") } -func (c *mockChangeBuilder) BuildRaw(ch *Change) (raw *aclpb.RawChange, err error) { +func (c *mockChangeBuilder) BuildRaw(ch *Change) (raw *aclpb.RawTreeChangeWithId, err error) { return c.originalBuilder.BuildRaw(ch) } @@ -141,7 +137,7 @@ func TestObjectTree(t *testing.T) { changeCreator := ctx.changeCreator objTree := ctx.objTree - rawChanges := []*aclpb.RawChange{ + rawChanges := []*aclpb.RawTreeChangeWithId{ changeCreator.createRaw("1", aclList.Head().Id, "0", false, "0"), changeCreator.createRaw("2", aclList.Head().Id, "0", false, "1"), } @@ -182,7 +178,7 @@ func TestObjectTree(t *testing.T) { changeCreator := ctx.changeCreator objTree := ctx.objTree - rawChanges := []*aclpb.RawChange{ + rawChanges := []*aclpb.RawTreeChangeWithId{ changeCreator.createRaw("0", aclList.Head().Id, "", true, ""), } res, err := objTree.AddRawChanges(context.Background(), rawChanges...) @@ -202,7 +198,7 @@ func TestObjectTree(t *testing.T) { changeCreator := ctx.changeCreator objTree := ctx.objTree - rawChanges := []*aclpb.RawChange{ + rawChanges := []*aclpb.RawTreeChangeWithId{ changeCreator.createRaw("2", aclList.Head().Id, "0", false, "1"), } res, err := objTree.AddRawChanges(context.Background(), rawChanges...) @@ -224,7 +220,7 @@ func TestObjectTree(t *testing.T) { changeCreator := ctx.changeCreator objTree := ctx.objTree - rawChanges := []*aclpb.RawChange{ + rawChanges := []*aclpb.RawTreeChangeWithId{ changeCreator.createRaw("1", aclList.Head().Id, "0", false, "0"), changeCreator.createRaw("2", aclList.Head().Id, "0", false, "1"), changeCreator.createRaw("3", aclList.Head().Id, "0", true, "2"), @@ -268,7 +264,7 @@ func TestObjectTree(t *testing.T) { changeCreator := ctx.changeCreator objTree := ctx.objTree - rawChanges := []*aclpb.RawChange{ + rawChanges := []*aclpb.RawTreeChangeWithId{ changeCreator.createRaw("1", aclList.Head().Id, "0", false, "0"), changeCreator.createRaw("2", aclList.Head().Id, "0", false, "1"), changeCreator.createRaw("3", aclList.Head().Id, "0", true, "2"), @@ -287,7 +283,7 @@ func TestObjectTree(t *testing.T) { changeCreator := ctx.changeCreator objTree := ctx.objTree - rawChanges := []*aclpb.RawChange{ + rawChanges := []*aclpb.RawTreeChangeWithId{ changeCreator.createRaw("1", aclList.Head().Id, "0", false, "0"), changeCreator.createRaw("2", aclList.Head().Id, "0", false, "1"), changeCreator.createRaw("3", aclList.Head().Id, "0", true, "2"), @@ -361,7 +357,7 @@ func TestObjectTree(t *testing.T) { changeCreator := ctx.changeCreator objTree := ctx.objTree - rawChanges := []*aclpb.RawChange{ + rawChanges := []*aclpb.RawTreeChangeWithId{ changeCreator.createRaw("1", aclList.Head().Id, "0", false, "0"), changeCreator.createRaw("2", aclList.Head().Id, "0", false, "1"), changeCreator.createRaw("3", aclList.Head().Id, "0", true, "2"), @@ -437,7 +433,7 @@ func TestObjectTree(t *testing.T) { changeCreator := ctx.changeCreator objTree := ctx.objTree - rawChanges := []*aclpb.RawChange{ + rawChanges := []*aclpb.RawTreeChangeWithId{ changeCreator.createRaw("1", aclList.Head().Id, "0", false, "0"), changeCreator.createRaw("2", aclList.Head().Id, "0", false, "1"), changeCreator.createRaw("3", aclList.Head().Id, "0", true, "2"), @@ -446,7 +442,7 @@ func TestObjectTree(t *testing.T) { require.NoError(t, err, "adding changes should be without error") require.Equal(t, "3", objTree.Root().Id) - rawChanges = []*aclpb.RawChange{ + rawChanges = []*aclpb.RawTreeChangeWithId{ changeCreator.createRaw("4", aclList.Head().Id, "0", false, "2"), changeCreator.createRaw("5", aclList.Head().Id, "0", false, "1"), changeCreator.createRaw("6", aclList.Head().Id, "0", false, "3", "4", "5"),