Skip to content

Commit 9edb088

Browse files
committed
fix: add dbauthz tests
1 parent 34003dc commit 9edb088

File tree

4 files changed

+52
-2
lines changed

4 files changed

+52
-2
lines changed

coderd/database/dbauthz/dbauthz.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3582,7 +3582,7 @@ func (q *querier) OrganizationMembers(ctx context.Context, arg database.Organiza
35823582
}
35833583

35843584
func (q *querier) PaginatedOrganizationMembers(ctx context.Context, arg database.PaginatedOrganizationMembersParams) ([]database.PaginatedOrganizationMembersRow, error) {
3585-
panic("not implemented")
3585+
return fetchWithPostFilter(q.auth, policy.ActionRead, q.db.PaginatedOrganizationMembers)(ctx, arg)
35863586
}
35873587

35883588
func (q *querier) ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate(ctx context.Context, templateID uuid.UUID) error {

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -985,6 +985,22 @@ func (s *MethodTestSuite) TestOrganization() {
985985
mem, policy.ActionRead,
986986
)
987987
}))
988+
s.Run("PaginatedOrganizationMembers", s.Subtest(func(db database.Store, check *expects) {
989+
o := dbgen.Organization(s.T(), db, database.Organization{})
990+
u := dbgen.User(s.T(), db, database.User{})
991+
mem := dbgen.OrganizationMember(s.T(), db, database.OrganizationMember{
992+
OrganizationID: o.ID,
993+
UserID: u.ID,
994+
Roles: []string{rbac.RoleOrgAdmin()},
995+
})
996+
997+
check.Args(database.PaginatedOrganizationMembersParams{
998+
OrganizationID: uuid.UUID{},
999+
LimitOpt: 1,
1000+
}).Asserts(
1001+
mem, policy.ActionRead,
1002+
)
1003+
}))
9881004
s.Run("UpdateMemberRoles", s.Subtest(func(db database.Store, check *expects) {
9891005
o := dbgen.Organization(s.T(), db, database.Organization{})
9901006
u := dbgen.User(s.T(), db, database.User{})

coderd/database/dbmem/dbmem.go

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9590,7 +9590,37 @@ func (q *FakeQuerier) PaginatedOrganizationMembers(ctx context.Context, arg data
95909590
return nil, err
95919591
}
95929592

9593-
panic("not implemented")
9593+
q.mutex.RLock()
9594+
defer q.mutex.RUnlock()
9595+
9596+
tmp := make([]database.PaginatedOrganizationMembersRow, 0)
9597+
9598+
skippedMembers := 0
9599+
for _, organizationMember := range q.organizationMembers {
9600+
if arg.OrganizationID != uuid.Nil && organizationMember.OrganizationID != arg.OrganizationID {
9601+
continue
9602+
}
9603+
9604+
if skippedMembers < int(arg.OffsetOpt) {
9605+
skippedMembers += 1
9606+
continue
9607+
}
9608+
9609+
if len(tmp) >= int(arg.LimitOpt) {
9610+
break
9611+
}
9612+
9613+
user, _ := q.getUserByIDNoLock(organizationMember.UserID)
9614+
tmp = append(tmp, database.PaginatedOrganizationMembersRow{
9615+
OrganizationMember: organizationMember,
9616+
Username: user.Username,
9617+
AvatarURL: user.AvatarURL,
9618+
Name: user.Name,
9619+
Email: user.Email,
9620+
GlobalRoles: user.RBACRoles,
9621+
})
9622+
}
9623+
return tmp, nil
95949624
}
95959625

95969626
func (q *FakeQuerier) ReduceWorkspaceAgentShareLevelToAuthenticatedByTemplate(_ context.Context, templateID uuid.UUID) error {

coderd/database/modelmethods.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,10 @@ func (m OrganizationMembersRow) RBACObject() rbac.Object {
256256
return m.OrganizationMember.RBACObject()
257257
}
258258

259+
func (m PaginatedOrganizationMembersRow) RBACObject() rbac.Object {
260+
return m.OrganizationMember.RBACObject()
261+
}
262+
259263
func (m GetOrganizationIDsByMemberIDsRow) RBACObject() rbac.Object {
260264
// TODO: This feels incorrect as we are really returning a list of orgmembers.
261265
// This return type should be refactored to return a list of orgmembers, not this

0 commit comments

Comments
 (0)