Skip to content

Commit 81146cd

Browse files
committed
try: Use GetAuthorizedTemplates
1 parent 6afb914 commit 81146cd

File tree

1 file changed

+24
-21
lines changed

1 file changed

+24
-21
lines changed

coderd/database/dbauthz/dbauthz.go

+24-21
Original file line numberDiff line numberDiff line change
@@ -1190,17 +1190,18 @@ func (q *querier) GetTemplateDAUs(ctx context.Context, arg database.GetTemplateD
11901190
}
11911191

11921192
func (q *querier) GetTemplateDailyInsights(ctx context.Context, arg database.GetTemplateDailyInsightsParams) ([]database.GetTemplateDailyInsightsRow, error) {
1193-
for _, templateID := range arg.TemplateIDs {
1194-
template, err := q.db.GetTemplateByID(ctx, templateID)
1193+
if len(arg.TemplateIDs) > 0 {
1194+
prep, err := prepareSQLFilter(ctx, q.auth, rbac.ActionUpdate, rbac.ResourceTemplate.Type)
11951195
if err != nil {
1196-
return nil, err
1196+
return nil, xerrors.Errorf("(dev error) prepare sql filter: %w", err)
11971197
}
1198-
1199-
if err := q.authorizeContext(ctx, rbac.ActionUpdate, template); err != nil {
1198+
_, err = q.db.GetAuthorizedTemplates(ctx, database.GetTemplatesWithFilterParams{
1199+
IDs: arg.TemplateIDs,
1200+
}, prep)
1201+
if err != nil {
12001202
return nil, err
12011203
}
1202-
}
1203-
if len(arg.TemplateIDs) == 0 {
1204+
} else {
12041205
if err := q.authorizeContext(ctx, rbac.ActionUpdate, rbac.ResourceTemplate.All()); err != nil {
12051206
return nil, err
12061207
}
@@ -1209,17 +1210,18 @@ func (q *querier) GetTemplateDailyInsights(ctx context.Context, arg database.Get
12091210
}
12101211

12111212
func (q *querier) GetTemplateInsights(ctx context.Context, arg database.GetTemplateInsightsParams) (database.GetTemplateInsightsRow, error) {
1212-
for _, templateID := range arg.TemplateIDs {
1213-
template, err := q.db.GetTemplateByID(ctx, templateID)
1213+
if len(arg.TemplateIDs) > 0 {
1214+
prep, err := prepareSQLFilter(ctx, q.auth, rbac.ActionUpdate, rbac.ResourceTemplate.Type)
12141215
if err != nil {
1215-
return database.GetTemplateInsightsRow{}, err
1216+
return database.GetTemplateInsightsRow{}, xerrors.Errorf("(dev error) prepare sql filter: %w", err)
12161217
}
1217-
1218-
if err := q.authorizeContext(ctx, rbac.ActionUpdate, template); err != nil {
1218+
_, err = q.db.GetAuthorizedTemplates(ctx, database.GetTemplatesWithFilterParams{
1219+
IDs: arg.TemplateIDs,
1220+
}, prep)
1221+
if err != nil {
12191222
return database.GetTemplateInsightsRow{}, err
12201223
}
1221-
}
1222-
if len(arg.TemplateIDs) == 0 {
1224+
} else {
12231225
if err := q.authorizeContext(ctx, rbac.ActionUpdate, rbac.ResourceTemplate.All()); err != nil {
12241226
return database.GetTemplateInsightsRow{}, err
12251227
}
@@ -1228,17 +1230,18 @@ func (q *querier) GetTemplateInsights(ctx context.Context, arg database.GetTempl
12281230
}
12291231

12301232
func (q *querier) GetTemplateParameterInsights(ctx context.Context, arg database.GetTemplateParameterInsightsParams) ([]database.GetTemplateParameterInsightsRow, error) {
1231-
for _, templateID := range arg.TemplateIDs {
1232-
template, err := q.db.GetTemplateByID(ctx, templateID)
1233+
if len(arg.TemplateIDs) > 0 {
1234+
prep, err := prepareSQLFilter(ctx, q.auth, rbac.ActionUpdate, rbac.ResourceTemplate.Type)
12331235
if err != nil {
1234-
return nil, err
1236+
return nil, xerrors.Errorf("(dev error) prepare sql filter: %w", err)
12351237
}
1236-
1237-
if err := q.authorizeContext(ctx, rbac.ActionUpdate, template); err != nil {
1238+
_, err = q.db.GetAuthorizedTemplates(ctx, database.GetTemplatesWithFilterParams{
1239+
IDs: arg.TemplateIDs,
1240+
}, prep)
1241+
if err != nil {
12381242
return nil, err
12391243
}
1240-
}
1241-
if len(arg.TemplateIDs) == 0 {
1244+
} else {
12421245
if err := q.authorizeContext(ctx, rbac.ActionUpdate, rbac.ResourceTemplate.All()); err != nil {
12431246
return nil, err
12441247
}

0 commit comments

Comments
 (0)