Skip to content

Commit c38c2d1

Browse files
committed
address pawel's feedback
1 parent b4a5cfb commit c38c2d1

File tree

1 file changed

+34
-15
lines changed

1 file changed

+34
-15
lines changed

lib/accesslists/hierarchy_test.go

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ package accesslists
2020

2121
import (
2222
"context"
23+
"slices"
2324
"sort"
2425
"testing"
2526
"time"
@@ -313,31 +314,35 @@ func TestAccessListIsMember_NestedRequirements(t *testing.T) {
313314
},
314315
}
315316

316-
userAllRoles, err := types.NewUser(userName)
317+
user, err := types.NewUser(userName)
317318
require.NoError(t, err)
318-
allRoles := append(
319-
append(
320-
rootList.Spec.MembershipRequires.Roles,
321-
middleList.Spec.MembershipRequires.Roles...,
322-
),
323-
leafList.Spec.MembershipRequires.Roles...,
319+
allRoles := slices.Concat(
320+
rootList.Spec.MembershipRequires.Roles,
321+
middleList.Spec.MembershipRequires.Roles,
322+
leafList.Spec.MembershipRequires.Roles,
324323
)
325-
userAllRoles.SetRoles(allRoles)
324+
user.SetRoles(allRoles)
325+
326+
typ, err := IsAccessListMember(ctx, user, rootList, aclGetter, locks, clock)
327+
require.NoError(t, err)
328+
require.Equal(t, accesslistv1.AccessListUserAssignmentType_ACCESS_LIST_USER_ASSIGNMENT_TYPE_INHERITED, typ)
326329

327-
typ, err := IsAccessListMember(ctx, userAllRoles, rootList, aclGetter, locks, clock)
330+
typ, err = IsAccessListMember(ctx, user, middleList, aclGetter, locks, clock)
328331
require.NoError(t, err)
329332
require.Equal(t, accesslistv1.AccessListUserAssignmentType_ACCESS_LIST_USER_ASSIGNMENT_TYPE_INHERITED, typ)
330333

334+
typ, err = IsAccessListMember(ctx, user, leafList, aclGetter, locks, clock)
335+
require.NoError(t, err)
336+
require.Equal(t, accesslistv1.AccessListUserAssignmentType_ACCESS_LIST_USER_ASSIGNMENT_TYPE_EXPLICIT, typ)
337+
331338
// User missing middle role
332-
missingMiddleRoles := append(
339+
missingMiddleRoles := slices.Concat(
333340
rootList.Spec.MembershipRequires.Roles,
334-
leafList.Spec.MembershipRequires.Roles...,
341+
leafList.Spec.MembershipRequires.Roles,
335342
)
336-
userMissingMiddle, err := types.NewUser(userName)
337-
require.NoError(t, err)
338-
userMissingMiddle.SetRoles(missingMiddleRoles)
343+
user.SetRoles(missingMiddleRoles)
339344

340-
typ, err = IsAccessListMember(ctx, userMissingMiddle, rootList, aclGetter, locks, clock)
345+
typ, err = IsAccessListMember(ctx, user, rootList, aclGetter, locks, clock)
341346
require.Error(t, err)
342347
require.ErrorAs(t, err, new(*trace.AccessDeniedError))
343348
require.Equal(t, accesslistv1.AccessListUserAssignmentType_ACCESS_LIST_USER_ASSIGNMENT_TYPE_UNSPECIFIED, typ)
@@ -419,6 +424,14 @@ func TestAccessListIsMember_NestedRequirements(t *testing.T) {
419424
require.Error(t, err)
420425
require.ErrorAs(t, err, new(*trace.AccessDeniedError))
421426
require.Equal(t, accesslistv1.AccessListUserAssignmentType_ACCESS_LIST_USER_ASSIGNMENT_TYPE_UNSPECIFIED, typ)
427+
typ, err = IsAccessListMember(ctx, user, secondList, aclGetter, locks, clock)
428+
require.Error(t, err)
429+
require.ErrorAs(t, err, new(*trace.AccessDeniedError))
430+
require.Equal(t, accesslistv1.AccessListUserAssignmentType_ACCESS_LIST_USER_ASSIGNMENT_TYPE_UNSPECIFIED, typ)
431+
typ, err = IsAccessListMember(ctx, user, thirdList, aclGetter, locks, clock)
432+
require.Error(t, err)
433+
require.ErrorAs(t, err, new(*trace.AccessDeniedError))
434+
require.Equal(t, accesslistv1.AccessListUserAssignmentType_ACCESS_LIST_USER_ASSIGNMENT_TYPE_UNSPECIFIED, typ)
422435
})
423436

424437
t.Run("cyclic graph, user membership", func(t *testing.T) {
@@ -454,6 +467,12 @@ func TestAccessListIsMember_NestedRequirements(t *testing.T) {
454467
typ, err := IsAccessListMember(ctx, user, firstList, aclGetter, locks, clock)
455468
require.NoError(t, err)
456469
require.Equal(t, accesslistv1.AccessListUserAssignmentType_ACCESS_LIST_USER_ASSIGNMENT_TYPE_INHERITED, typ)
470+
typ, err = IsAccessListMember(ctx, user, secondList, aclGetter, locks, clock)
471+
require.NoError(t, err)
472+
require.Equal(t, accesslistv1.AccessListUserAssignmentType_ACCESS_LIST_USER_ASSIGNMENT_TYPE_INHERITED, typ)
473+
typ, err = IsAccessListMember(ctx, user, thirdList, aclGetter, locks, clock)
474+
require.NoError(t, err)
475+
require.Equal(t, accesslistv1.AccessListUserAssignmentType_ACCESS_LIST_USER_ASSIGNMENT_TYPE_EXPLICIT, typ)
457476
})
458477
}
459478

0 commit comments

Comments
 (0)