Skip to content

Commit e2a7182

Browse files
committed
Apply review suggestions
1 parent ff6e8fa commit e2a7182

17 files changed

+233
-186
lines changed
File renamed without changes.
File renamed without changes.

coderd/database/dbauthz/dbauthz.go

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1235,6 +1235,46 @@ func (q *querier) authorizeProvisionerJob(ctx context.Context, job database.Prov
12351235
return nil
12361236
}
12371237

1238+
func (q *querier) UpdateTemplateVersionFlagsByJobID(ctx context.Context, arg database.UpdateTemplateVersionFlagsByJobIDParams) error {
1239+
// An actor is allowed to update the template version ai task and external agent flag if they are authorized to update the template.
1240+
tv, err := q.db.GetTemplateVersionByJobID(ctx, arg.JobID)
1241+
if err != nil {
1242+
return err
1243+
}
1244+
var obj rbac.Objecter
1245+
if !tv.TemplateID.Valid {
1246+
obj = rbac.ResourceTemplate.InOrg(tv.OrganizationID)
1247+
} else {
1248+
tpl, err := q.db.GetTemplateByID(ctx, tv.TemplateID.UUID)
1249+
if err != nil {
1250+
return err
1251+
}
1252+
obj = tpl
1253+
}
1254+
if err := q.authorizeContext(ctx, policy.ActionUpdate, obj); err != nil {
1255+
return err
1256+
}
1257+
return q.db.UpdateTemplateVersionFlagsByJobID(ctx, arg)
1258+
}
1259+
1260+
func (q *querier) UpdateWorkspaceBuildFlagsByID(ctx context.Context, arg database.UpdateWorkspaceBuildFlagsByIDParams) error {
1261+
build, err := q.db.GetWorkspaceBuildByID(ctx, arg.ID)
1262+
if err != nil {
1263+
return err
1264+
}
1265+
1266+
workspace, err := q.db.GetWorkspaceByID(ctx, build.WorkspaceID)
1267+
if err != nil {
1268+
return err
1269+
}
1270+
1271+
err = q.authorizeContext(ctx, policy.ActionUpdate, workspace.RBACObject())
1272+
if err != nil {
1273+
return err
1274+
}
1275+
return q.db.UpdateWorkspaceBuildFlagsByID(ctx, arg)
1276+
}
1277+
12381278
func (q *querier) AcquireLock(ctx context.Context, id int64) error {
12391279
return q.db.AcquireLock(ctx, id)
12401280
}
@@ -4701,28 +4741,6 @@ func (q *querier) UpdateTemplateScheduleByID(ctx context.Context, arg database.U
47014741
return update(q.log, q.auth, fetch, q.db.UpdateTemplateScheduleByID)(ctx, arg)
47024742
}
47034743

4704-
func (q *querier) UpdateTemplateVersionAITaskAndExternalAgentByJobID(ctx context.Context, arg database.UpdateTemplateVersionAITaskAndExternalAgentByJobIDParams) error {
4705-
// An actor is allowed to update the template version ai task and external agent flag if they are authorized to update the template.
4706-
tv, err := q.db.GetTemplateVersionByJobID(ctx, arg.JobID)
4707-
if err != nil {
4708-
return err
4709-
}
4710-
var obj rbac.Objecter
4711-
if !tv.TemplateID.Valid {
4712-
obj = rbac.ResourceTemplate.InOrg(tv.OrganizationID)
4713-
} else {
4714-
tpl, err := q.db.GetTemplateByID(ctx, tv.TemplateID.UUID)
4715-
if err != nil {
4716-
return err
4717-
}
4718-
obj = tpl
4719-
}
4720-
if err := q.authorizeContext(ctx, policy.ActionUpdate, obj); err != nil {
4721-
return err
4722-
}
4723-
return q.db.UpdateTemplateVersionAITaskAndExternalAgentByJobID(ctx, arg)
4724-
}
4725-
47264744
func (q *querier) UpdateTemplateVersionByID(ctx context.Context, arg database.UpdateTemplateVersionByIDParams) error {
47274745
// An actor is allowed to update the template version if they are authorized to update the template.
47284746
tv, err := q.db.GetTemplateVersionByID(ctx, arg.ID)
@@ -5104,24 +5122,6 @@ func (q *querier) UpdateWorkspaceAutostart(ctx context.Context, arg database.Upd
51045122
return update(q.log, q.auth, fetch, q.db.UpdateWorkspaceAutostart)(ctx, arg)
51055123
}
51065124

5107-
func (q *querier) UpdateWorkspaceBuildAITaskAndExternalAgentByID(ctx context.Context, arg database.UpdateWorkspaceBuildAITaskAndExternalAgentByIDParams) error {
5108-
build, err := q.db.GetWorkspaceBuildByID(ctx, arg.ID)
5109-
if err != nil {
5110-
return err
5111-
}
5112-
5113-
workspace, err := q.db.GetWorkspaceByID(ctx, build.WorkspaceID)
5114-
if err != nil {
5115-
return err
5116-
}
5117-
5118-
err = q.authorizeContext(ctx, policy.ActionUpdate, workspace.RBACObject())
5119-
if err != nil {
5120-
return err
5121-
}
5122-
return q.db.UpdateWorkspaceBuildAITaskAndExternalAgentByID(ctx, arg)
5123-
}
5124-
51255125
// UpdateWorkspaceBuildCostByID is used by the provisioning system to update the cost of a workspace build.
51265126
func (q *querier) UpdateWorkspaceBuildCostByID(ctx context.Context, arg database.UpdateWorkspaceBuildCostByIDParams) error {
51275127
if err := q.authorizeContext(ctx, policy.ActionUpdate, rbac.ResourceSystem); err != nil {

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1521,7 +1521,7 @@ func (s *MethodTestSuite) TestTemplate() {
15211521
ID: t1.ID,
15221522
}).Asserts(t1, policy.ActionUpdate)
15231523
}))
1524-
s.Run("UpdateTemplateVersionAITaskAndExternalAgentByJobID", s.Subtest(func(db database.Store, check *expects) {
1524+
s.Run("UpdateTemplateVersionFlagsByJobID", s.Subtest(func(db database.Store, check *expects) {
15251525
dbtestutil.DisableForeignKeysAndTriggers(s.T(), db)
15261526
o := dbgen.Organization(s.T(), db, database.Organization{})
15271527
u := dbgen.User(s.T(), db, database.User{})
@@ -1534,7 +1534,7 @@ func (s *MethodTestSuite) TestTemplate() {
15341534
JobID: job.ID,
15351535
TemplateID: uuid.NullUUID{UUID: t.ID, Valid: true},
15361536
})
1537-
check.Args(database.UpdateTemplateVersionAITaskAndExternalAgentByJobIDParams{
1537+
check.Args(database.UpdateTemplateVersionFlagsByJobIDParams{
15381538
JobID: job.ID,
15391539
HasAITask: sql.NullBool{Bool: true, Valid: true},
15401540
HasExternalAgent: sql.NullBool{Bool: true, Valid: true},
@@ -3228,7 +3228,7 @@ func (s *MethodTestSuite) TestWorkspace() {
32283228
Deadline: b.Deadline,
32293229
}).Asserts(w, policy.ActionUpdate)
32303230
}))
3231-
s.Run("UpdateWorkspaceBuildAITaskAndExternalAgentByID", s.Subtest(func(db database.Store, check *expects) {
3231+
s.Run("UpdateWorkspaceBuildFlagsByID", s.Subtest(func(db database.Store, check *expects) {
32323232
u := dbgen.User(s.T(), db, database.User{})
32333233
o := dbgen.Organization(s.T(), db, database.Organization{})
32343234
tpl := dbgen.Template(s.T(), db, database.Template{
@@ -3256,7 +3256,7 @@ func (s *MethodTestSuite) TestWorkspace() {
32563256
res := dbgen.WorkspaceResource(s.T(), db, database.WorkspaceResource{JobID: b.JobID})
32573257
agt := dbgen.WorkspaceAgent(s.T(), db, database.WorkspaceAgent{ResourceID: res.ID})
32583258
app := dbgen.WorkspaceApp(s.T(), db, database.WorkspaceApp{AgentID: agt.ID})
3259-
check.Args(database.UpdateWorkspaceBuildAITaskAndExternalAgentByIDParams{
3259+
check.Args(database.UpdateWorkspaceBuildFlagsByIDParams{
32603260
ID: b.ID,
32613261
HasAITask: sql.NullBool{Bool: true, Valid: true},
32623262
HasExternalAgent: sql.NullBool{Bool: true, Valid: true},

coderd/database/dbgen/dbgen.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ func WorkspaceBuild(t testing.TB, db database.Store, orig database.WorkspaceBuil
472472
}
473473

474474
if hasAITask.Valid || hasExternalAgent.Valid {
475-
require.NoError(t, db.UpdateWorkspaceBuildAITaskAndExternalAgentByID(genCtx, database.UpdateWorkspaceBuildAITaskAndExternalAgentByIDParams{
475+
require.NoError(t, db.UpdateWorkspaceBuildFlagsByID(genCtx, database.UpdateWorkspaceBuildFlagsByIDParams{
476476
ID: buildID,
477477
HasAITask: hasAITask,
478478
HasExternalAgent: hasExternalAgent,
@@ -1052,7 +1052,7 @@ func TemplateVersion(t testing.TB, db database.Store, orig database.TemplateVers
10521052
}
10531053

10541054
if hasAITask.Valid || hasExternalAgent.Valid {
1055-
require.NoError(t, db.UpdateTemplateVersionAITaskAndExternalAgentByJobID(genCtx, database.UpdateTemplateVersionAITaskAndExternalAgentByJobIDParams{
1055+
require.NoError(t, db.UpdateTemplateVersionFlagsByJobID(genCtx, database.UpdateTemplateVersionFlagsByJobIDParams{
10561056
JobID: jobID,
10571057
HasAITask: hasAITask,
10581058
HasExternalAgent: hasExternalAgent,

coderd/database/dbmetrics/querymetrics.go

Lines changed: 14 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dbmock/dbmock.go

Lines changed: 28 additions & 28 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/querier.go

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy