Skip to content

Commit a4e40f0

Browse files
committed
modelquery
1 parent 973bedc commit a4e40f0

File tree

4 files changed

+52
-2
lines changed

4 files changed

+52
-2
lines changed

coderd/database/dbauthz/dbauthz.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3281,8 +3281,13 @@ func (q *querier) GetWorkspaceBuildParameters(ctx context.Context, workspaceBuil
32813281
return q.db.GetWorkspaceBuildParameters(ctx, workspaceBuildID)
32823282
}
32833283

3284-
func (q *querier) GetWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIds []uuid.UUID) ([]database.WorkspaceBuildParameter, error) {
3285-
panic("not implemented")
3284+
func (q *querier) GetWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIDs []uuid.UUID) ([]database.WorkspaceBuildParameter, error) {
3285+
prep, err := prepareSQLFilter(ctx, q.auth, policy.ActionRead, rbac.ResourceWorkspace.Type)
3286+
if err != nil {
3287+
return nil, xerrors.Errorf("(dev error) prepare sql filter: %w", err)
3288+
}
3289+
3290+
return q.db.GetAuthorizedWorkspaceBuildParametersByBuildIDs(ctx, workspaceBuildIDs, prep)
32863291
}
32873292

32883293
func (q *querier) GetWorkspaceBuildStatsByTemplates(ctx context.Context, since time.Time) ([]database.GetWorkspaceBuildStatsByTemplatesRow, error) {
@@ -5270,6 +5275,10 @@ func (q *querier) GetAuthorizedWorkspacesAndAgentsByOwnerID(ctx context.Context,
52705275
return q.GetWorkspacesAndAgentsByOwnerID(ctx, ownerID)
52715276
}
52725277

5278+
func (q *querier) GetAuthorizedWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIDs []uuid.UUID, _ rbac.PreparedAuthorized) ([]database.WorkspaceBuildParameter, error) {
5279+
return q.GetWorkspaceBuildParametersByBuildIDs(ctx, workspaceBuildIDs)
5280+
}
5281+
52735282
// GetAuthorizedUsers is not required for dbauthz since GetUsers is already
52745283
// authenticated.
52755284
func (q *querier) GetAuthorizedUsers(ctx context.Context, arg database.GetUsersParams, _ rbac.PreparedAuthorized) ([]database.GetUsersRow, error) {

coderd/database/dbmem/dbmem.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13905,6 +13905,10 @@ func (q *FakeQuerier) GetAuthorizedWorkspacesAndAgentsByOwnerID(ctx context.Cont
1390513905
return out, nil
1390613906
}
1390713907

13908+
func (q *FakeQuerier) GetAuthorizedWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIDs []uuid.UUID, prepared rbac.PreparedAuthorized) ([]database.WorkspaceBuildParameter, error) {
13909+
panic("not implemented")
13910+
}
13911+
1390813912
func (q *FakeQuerier) GetAuthorizedUsers(ctx context.Context, arg database.GetUsersParams, prepared rbac.PreparedAuthorized) ([]database.GetUsersRow, error) {
1390913913
if err := validateDatabaseType(arg); err != nil {
1391013914
return nil, err

coderd/database/dbmetrics/querymetrics.go

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

coderd/database/modelqueries.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ func (q *sqlQuerier) GetTemplateGroupRoles(ctx context.Context, id uuid.UUID) ([
226226
type workspaceQuerier interface {
227227
GetAuthorizedWorkspaces(ctx context.Context, arg GetWorkspacesParams, prepared rbac.PreparedAuthorized) ([]GetWorkspacesRow, error)
228228
GetAuthorizedWorkspacesAndAgentsByOwnerID(ctx context.Context, ownerID uuid.UUID, prepared rbac.PreparedAuthorized) ([]GetWorkspacesAndAgentsByOwnerIDRow, error)
229+
GetAuthorizedWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIDs []uuid.UUID, prepared rbac.PreparedAuthorized) ([]WorkspaceBuildParameter, error)
229230
}
230231

231232
// GetAuthorizedWorkspaces returns all workspaces that the user is authorized to access.
@@ -372,6 +373,35 @@ func (q *sqlQuerier) GetAuthorizedWorkspacesAndAgentsByOwnerID(ctx context.Conte
372373
return items, nil
373374
}
374375

376+
func (q *sqlQuerier) GetAuthorizedWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIDs []uuid.UUID, prepared rbac.PreparedAuthorized) ([]WorkspaceBuildParameter, error) {
377+
authorizedFilter, err := prepared.CompileToSQL(ctx, rbac.ConfigWorkspaces())
378+
if err != nil {
379+
return nil, xerrors.Errorf("compile authorized filter: %w", err)
380+
}
381+
382+
filtered, err := insertAuthorizedFilter(getWorkspaceBuildParametersByBuildIDs, fmt.Sprintf(" AND %s", authorizedFilter))
383+
if err != nil {
384+
return nil, xerrors.Errorf("insert authorized filter: %w", err)
385+
}
386+
387+
query := fmt.Sprintf("-- name: GetAuthorizedWorkspaceBuildParametersByBuildIDs :many\n%s", filtered)
388+
rows, err := q.db.QueryContext(ctx, query, pq.Array(workspaceBuildIDs))
389+
if err != nil {
390+
return nil, err
391+
}
392+
defer rows.Close()
393+
394+
var items []WorkspaceBuildParameter
395+
for rows.Next() {
396+
var i WorkspaceBuildParameter
397+
if err := rows.Scan(&i.WorkspaceBuildID, &i.Name, &i.Value); err != nil {
398+
return nil, err
399+
}
400+
items = append(items, i)
401+
}
402+
return items, nil
403+
}
404+
375405
type userQuerier interface {
376406
GetAuthorizedUsers(ctx context.Context, arg GetUsersParams, prepared rbac.PreparedAuthorized) ([]GetUsersRow, error)
377407
}

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