Skip to content

Commit e07e1d9

Browse files
committed
simplify RBAC check on GetGroupMembersCountByGroupID
1 parent c2702fc commit e07e1d9

File tree

2 files changed

+5
-25
lines changed

2 files changed

+5
-25
lines changed

coderd/database/dbauthz/dbauthz.go

+1-8
Original file line numberDiff line numberDiff line change
@@ -1401,20 +1401,13 @@ func (q *querier) GetGroupMembersByGroupID(ctx context.Context, id uuid.UUID) ([
14011401
}
14021402

14031403
func (q *querier) GetGroupMembersCountByGroupID(ctx context.Context, groupID uuid.UUID) (int64, error) {
1404-
group, err := q.GetGroupByID(ctx, groupID)
1405-
if err != nil {
1404+
if _, err := q.GetGroupByID(ctx, groupID); err != nil { // AuthZ check
14061405
return 0, err
14071406
}
14081407
memberCount, err := q.db.GetGroupMembersCountByGroupID(ctx, groupID)
14091408
if err != nil {
14101409
return 0, err
14111410
}
1412-
if err := q.authorizeContext(ctx, policy.ActionRead, database.GroupMembersCountRBACHelper{
1413-
GroupID: groupID,
1414-
OrganizationID: group.OrganizationID,
1415-
}); err != nil {
1416-
return 0, err
1417-
}
14181411
return memberCount, nil
14191412
}
14201413

coderd/database/modelmethods.go

+4-17
Original file line numberDiff line numberDiff line change
@@ -172,34 +172,21 @@ func (v TemplateVersion) RBACObjectNoTemplate() rbac.Object {
172172
return rbac.ResourceTemplate.InOrg(v.OrganizationID)
173173
}
174174

175-
func groupRBACObject(groupID, organizationID uuid.UUID) rbac.Object {
176-
return rbac.ResourceGroup.WithID(groupID).
177-
InOrg(organizationID).
175+
func (g Group) RBACObject() rbac.Object {
176+
return rbac.ResourceGroup.WithID(g.ID).
177+
InOrg(g.OrganizationID).
178178
// Group members can read the group.
179179
WithGroupACL(map[string][]policy.Action{
180-
groupID.String(): {
180+
g.ID.String(): {
181181
policy.ActionRead,
182182
},
183183
})
184184
}
185185

186-
func (g Group) RBACObject() rbac.Object {
187-
return groupRBACObject(g.ID, g.OrganizationID)
188-
}
189-
190186
func (gm GroupMember) RBACObject() rbac.Object {
191187
return rbac.ResourceGroupMember.WithID(gm.UserID).InOrg(gm.OrganizationID).WithOwner(gm.UserID.String())
192188
}
193189

194-
type GroupMembersCountRBACHelper struct {
195-
GroupID uuid.UUID
196-
OrganizationID uuid.UUID
197-
}
198-
199-
func (r GroupMembersCountRBACHelper) RBACObject() rbac.Object {
200-
return groupRBACObject(r.GroupID, r.OrganizationID)
201-
}
202-
203190
func (w GetWorkspaceByAgentIDRow) RBACObject() rbac.Object {
204191
return w.Workspace.RBACObject()
205192
}

0 commit comments

Comments
 (0)