Skip to content

test: add unit test to verify group permission behavior #14223

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Aug 12, 2024

Conversation

Emyrk
Copy link
Member

@Emyrk Emyrk commented Aug 9, 2024

Only running with in memory db as there is no advantage to using posgres, and it would just take longer.

@Emyrk Emyrk marked this pull request as ready for review August 9, 2024 17:52
Comment on lines +35 to +40
ownerCtx := dbauthz.As(context.Background(), rbac.Subject{
ID: "owner",
Roles: rbac.Roles(must(rbac.RoleIdentifiers{rbac.RoleOwner()}.Expand())),
Groups: []string{},
Scope: rbac.ExpandableScope(rbac.ScopeAll),
})
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: it's unfortunate to need to copy this role instead of referencing the OG owner

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, I needed the original owner role for setup. Given the pattern of the tabled tests, it felt weird to not fully define the role in the table again


for _, tc := range testCases {
tc := tc
t.Run(tc.Name, func(t *testing.T) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fun idea: you could actually just generate the name here from ${tc.Subject.ID}_ReadGroup${tc.ReadGroup}_ReadMembers${tc.ReadMembers}

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unfortunately if I do that, the Goland table test runner no longer works.

It looks like I can use %s format directives, but %t breaks it. And the goland feature allows me to select just 1 to run 🤷‍♂️

Scope: rbac.ExpandableScope(rbac.ScopeAll),
})

org := dbgen.Organization(t, db, database.Organization{})
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we test multi-org here?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Roles: rbac.Roles(must(rbac.RoleIdentifiers{rbac.ScopedRoleOrgUserAdmin(uuid.New())}.Expand())),

I threw in a different org admin. We don't actually need another org in the db for the authz test.

Emyrk and others added 2 commits August 12, 2024 08:09
@Emyrk Emyrk merged commit 8af8c77 into main Aug 12, 2024
27 checks passed
@Emyrk Emyrk deleted the stevenmasley/group_read_behavior branch August 12, 2024 13:34
@github-actions github-actions bot locked and limited conversation to collaborators Aug 12, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants