Skip to content

feat(coderd): add parameter insights to template insights #8656

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
Prev Previous commit
Next Next commit
try: Use GetAuthorizedTemplates
  • Loading branch information
mtojek committed Aug 3, 2023
commit 81146cda62e08c50d955e285836d18c59124ddc7
45 changes: 24 additions & 21 deletions coderd/database/dbauthz/dbauthz.go
Original file line number Diff line number Diff line change
Expand Up @@ -1190,17 +1190,18 @@ func (q *querier) GetTemplateDAUs(ctx context.Context, arg database.GetTemplateD
}

func (q *querier) GetTemplateDailyInsights(ctx context.Context, arg database.GetTemplateDailyInsightsParams) ([]database.GetTemplateDailyInsightsRow, error) {
for _, templateID := range arg.TemplateIDs {
template, err := q.db.GetTemplateByID(ctx, templateID)
if len(arg.TemplateIDs) > 0 {
prep, err := prepareSQLFilter(ctx, q.auth, rbac.ActionUpdate, rbac.ResourceTemplate.Type)
if err != nil {
return nil, err
return nil, xerrors.Errorf("(dev error) prepare sql filter: %w", err)
}

if err := q.authorizeContext(ctx, rbac.ActionUpdate, template); err != nil {
_, err = q.db.GetAuthorizedTemplates(ctx, database.GetTemplatesWithFilterParams{
IDs: arg.TemplateIDs,
}, prep)
if err != nil {
return nil, err
}
}
if len(arg.TemplateIDs) == 0 {
} else {
if err := q.authorizeContext(ctx, rbac.ActionUpdate, rbac.ResourceTemplate.All()); err != nil {
return nil, err
}
Expand All @@ -1209,17 +1210,18 @@ func (q *querier) GetTemplateDailyInsights(ctx context.Context, arg database.Get
}

func (q *querier) GetTemplateInsights(ctx context.Context, arg database.GetTemplateInsightsParams) (database.GetTemplateInsightsRow, error) {
for _, templateID := range arg.TemplateIDs {
template, err := q.db.GetTemplateByID(ctx, templateID)
if len(arg.TemplateIDs) > 0 {
prep, err := prepareSQLFilter(ctx, q.auth, rbac.ActionUpdate, rbac.ResourceTemplate.Type)
if err != nil {
return database.GetTemplateInsightsRow{}, err
return database.GetTemplateInsightsRow{}, xerrors.Errorf("(dev error) prepare sql filter: %w", err)
}

if err := q.authorizeContext(ctx, rbac.ActionUpdate, template); err != nil {
_, err = q.db.GetAuthorizedTemplates(ctx, database.GetTemplatesWithFilterParams{
IDs: arg.TemplateIDs,
}, prep)
if err != nil {
return database.GetTemplateInsightsRow{}, err
}
}
if len(arg.TemplateIDs) == 0 {
} else {
if err := q.authorizeContext(ctx, rbac.ActionUpdate, rbac.ResourceTemplate.All()); err != nil {
return database.GetTemplateInsightsRow{}, err
}
Expand All @@ -1228,17 +1230,18 @@ func (q *querier) GetTemplateInsights(ctx context.Context, arg database.GetTempl
}

func (q *querier) GetTemplateParameterInsights(ctx context.Context, arg database.GetTemplateParameterInsightsParams) ([]database.GetTemplateParameterInsightsRow, error) {
for _, templateID := range arg.TemplateIDs {
template, err := q.db.GetTemplateByID(ctx, templateID)
if len(arg.TemplateIDs) > 0 {
prep, err := prepareSQLFilter(ctx, q.auth, rbac.ActionUpdate, rbac.ResourceTemplate.Type)
if err != nil {
return nil, err
return nil, xerrors.Errorf("(dev error) prepare sql filter: %w", err)
}

if err := q.authorizeContext(ctx, rbac.ActionUpdate, template); err != nil {
_, err = q.db.GetAuthorizedTemplates(ctx, database.GetTemplatesWithFilterParams{
IDs: arg.TemplateIDs,
}, prep)
if err != nil {
return nil, err
}
}
if len(arg.TemplateIDs) == 0 {
} else {
if err := q.authorizeContext(ctx, rbac.ActionUpdate, rbac.ResourceTemplate.All()); err != nil {
return nil, err
}
Expand Down