Skip to content

Commit dd08f2f

Browse files
committed
fix AuthzUserSubject to include member and org member role
1 parent 44deada commit dd08f2f

File tree

3 files changed

+12
-6
lines changed

3 files changed

+12
-6
lines changed

coderd/coderdtest/coderdtest.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -617,11 +617,15 @@ func CreateAnotherUserMutators(t testing.TB, client *codersdk.Client, organizati
617617
}
618618

619619
// AuthzUserSubject does not include the user's groups.
620-
func AuthzUserSubject(user codersdk.User) rbac.Subject {
620+
func AuthzUserSubject(user codersdk.User, orgID uuid.UUID) rbac.Subject {
621621
roles := make(rbac.RoleNames, 0, len(user.Roles))
622+
// Member role is always implied
623+
roles = append(roles, rbac.RoleMember())
622624
for _, r := range user.Roles {
623625
roles = append(roles, r.Name)
624626
}
627+
// We assume only 1 org exists
628+
roles = append(roles, rbac.RoleOrgMember(orgID))
625629

626630
return rbac.Subject{
627631
ID: user.ID.String(),

coderd/templates_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -560,7 +560,7 @@ func TestPatchTemplateMeta(t *testing.T) {
560560
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
561561
defer cancel()
562562
// nolint:gocritic // Setting up unit test data
563-
err := db.UpdateTemplateAccessControlByID(dbauthz.As(ctx, coderdtest.AuthzUserSubject(tplAdmin)), database.UpdateTemplateAccessControlByIDParams{
563+
err := db.UpdateTemplateAccessControlByID(dbauthz.As(ctx, coderdtest.AuthzUserSubject(tplAdmin, user.OrganizationID)), database.UpdateTemplateAccessControlByIDParams{
564564
ID: template.ID,
565565
RequireActiveVersion: false,
566566
Deprecated: "Some deprecated message",

coderd/workspaceagents_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -912,10 +912,12 @@ func TestWorkspaceAgentReportStats(t *testing.T) {
912912
require.NoError(t, err)
913913

914914
// nolint:gocritic // using db directly over creating a delete job
915-
err = db.UpdateWorkspaceDeletedByID(dbauthz.As(context.Background(), coderdtest.AuthzUserSubject(admin)), database.UpdateWorkspaceDeletedByIDParams{
916-
ID: newWorkspace.ID,
917-
Deleted: true,
918-
})
915+
err = db.UpdateWorkspaceDeletedByID(dbauthz.As(context.Background(),
916+
coderdtest.AuthzUserSubject(admin, ownerUser.OrganizationID)),
917+
database.UpdateWorkspaceDeletedByIDParams{
918+
ID: newWorkspace.ID,
919+
Deleted: true,
920+
})
919921
require.NoError(t, err)
920922

921923
_, err = agentClient.PostStats(context.Background(), &agentsdk.Stats{

0 commit comments

Comments
 (0)