MCPcopy Index your code
hub / github.com/coder/coder / authorizedTemplateVersionFromJob

Function authorizedTemplateVersionFromJob

coderd/database/dbauthz/dbauthz.go:1348–1376  ·  view source on GitHub ↗
(ctx context.Context, q *querier, job database.ProvisionerJob)

Source from the content-addressed store, hash-verified

1346}
1347
1348func authorizedTemplateVersionFromJob(ctx context.Context, q *querier, job database.ProvisionerJob) (database.TemplateVersion, error) {
1349 switch job.Type {
1350 case database.ProvisionerJobTypeTemplateVersionDryRun:
1351 // TODO: This is really unfortunate that we need to inspect the json
1352 // payload. We should fix this.
1353 tmp := struct {
1354 TemplateVersionID uuid.UUID `json:"template_version_id"`
1355 }{}
1356 err := json.Unmarshal(job.Input, &tmp)
1357 if err != nil {
1358 return database.TemplateVersion{}, xerrors.Errorf("dry-run unmarshal: %w", err)
1359 }
1360 // Authorized call to get template version.
1361 tv, err := q.GetTemplateVersionByID(ctx, tmp.TemplateVersionID)
1362 if err != nil {
1363 return database.TemplateVersion{}, err
1364 }
1365 return tv, nil
1366 case database.ProvisionerJobTypeTemplateVersionImport:
1367 // Authorized call to get template version.
1368 tv, err := q.GetTemplateVersionByJobID(ctx, job.ID)
1369 if err != nil {
1370 return database.TemplateVersion{}, err
1371 }
1372 return tv, nil
1373 default:
1374 return database.TemplateVersion{}, xerrors.Errorf("unknown job type: %q", job.Type)
1375 }
1376}
1377
1378func (q *querier) authorizeTemplateInsights(ctx context.Context, templateIDs []uuid.UUID) error {
1379 // Abort early if can read all template insights, aka admins.

Calls 4

UnmarshalMethod · 0.45
ErrorfMethod · 0.45

Tested by

no test coverage detected