(ctx context.Context, q *querier, job database.ProvisionerJob)
| 1346 | } |
| 1347 | |
| 1348 | func 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 | |
| 1378 | func (q *querier) authorizeTemplateInsights(ctx context.Context, templateIDs []uuid.UUID) error { |
| 1379 | // Abort early if can read all template insights, aka admins. |
no test coverage detected