Skip to content

Commit 4bac517

Browse files
committed
Fix: authz
1 parent 864052c commit 4bac517

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

coderd/database/dbauthz/querier.go

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -720,6 +720,29 @@ func (q *querier) GetTemplateVersionParameters(ctx context.Context, templateVers
720720
return q.db.GetTemplateVersionParameters(ctx, templateVersionID)
721721
}
722722

723+
func (q *querier) GetTemplateVersionVariables(ctx context.Context, templateVersionID uuid.UUID) ([]database.TemplateVersionVariable, error) {
724+
tv, err := q.db.GetTemplateVersionByID(ctx, templateVersionID)
725+
if err != nil {
726+
return nil, err
727+
}
728+
729+
var object rbac.Objecter
730+
template, err := q.db.GetTemplateByID(ctx, tv.TemplateID.UUID)
731+
if err != nil {
732+
if !errors.Is(err, sql.ErrNoRows) {
733+
return nil, err
734+
}
735+
object = rbac.ResourceTemplate.InOrg(tv.OrganizationID)
736+
} else {
737+
object = tv.RBACObject(template)
738+
}
739+
740+
if err := q.authorizeContext(ctx, rbac.ActionCreate, object); err != nil {
741+
return nil, err
742+
}
743+
return q.db.GetTemplateVersionVariables(ctx, templateVersionID)
744+
}
745+
723746
func (q *querier) GetTemplateVersionsByIDs(ctx context.Context, ids []uuid.UUID) ([]database.TemplateVersion, error) {
724747
// TODO: This is so inefficient
725748
versions, err := q.db.GetTemplateVersionsByIDs(ctx, ids)

coderd/database/dbauthz/system.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,10 @@ func (q *querier) InsertTemplateVersionParameter(ctx context.Context, arg databa
185185
return q.db.InsertTemplateVersionParameter(ctx, arg)
186186
}
187187

188+
func (q *querier) InsertTemplateVersionVariable(ctx context.Context, arg database.InsertTemplateVersionVariableParams) (database.TemplateVersionVariable, error) {
189+
return q.db.InsertTemplateVersionVariable(ctx, arg)
190+
}
191+
188192
func (q *querier) InsertWorkspaceResource(ctx context.Context, arg database.InsertWorkspaceResourceParams) (database.WorkspaceResource, error) {
189193
return q.db.InsertWorkspaceResource(ctx, arg)
190194
}

0 commit comments

Comments
 (0)