Skip to content

Commit 3762175

Browse files
committed
modelquery
1 parent a7f4846 commit 3762175

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
@@ -3252,8 +3252,13 @@ func (q *querier) GetWorkspaceBuildParameters(ctx context.Context, workspaceBuil
32523252
return q.db.GetWorkspaceBuildParameters(ctx, workspaceBuildID)
32533253
}
32543254

3255-
func (q *querier) GetWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIds []uuid.UUID) ([]database.WorkspaceBuildParameter, error) {
3256-
panic("not implemented")
3255+
func (q *querier) GetWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIDs []uuid.UUID) ([]database.WorkspaceBuildParameter, error) {
3256+
prep, err := prepareSQLFilter(ctx, q.auth, policy.ActionRead, rbac.ResourceWorkspace.Type)
3257+
if err != nil {
3258+
return nil, xerrors.Errorf("(dev error) prepare sql filter: %w", err)
3259+
}
3260+
3261+
return q.db.GetAuthorizedWorkspaceBuildParametersByBuildIDs(ctx, workspaceBuildIDs, prep)
32573262
}
32583263

32593264
func (q *querier) GetWorkspaceBuildStatsByTemplates(ctx context.Context, since time.Time) ([]database.GetWorkspaceBuildStatsByTemplatesRow, error) {
@@ -5200,6 +5205,10 @@ func (q *querier) GetAuthorizedWorkspacesAndAgentsByOwnerID(ctx context.Context,
52005205
return q.GetWorkspacesAndAgentsByOwnerID(ctx, ownerID)
52015206
}
52025207

5208+
func (q *querier) GetAuthorizedWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIDs []uuid.UUID, _ rbac.PreparedAuthorized) ([]database.WorkspaceBuildParameter, error) {
5209+
return q.GetWorkspaceBuildParametersByBuildIDs(ctx, workspaceBuildIDs)
5210+
}
5211+
52035212
// GetAuthorizedUsers is not required for dbauthz since GetUsers is already
52045213
// authenticated.
52055214
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
@@ -13806,6 +13806,10 @@ func (q *FakeQuerier) GetAuthorizedWorkspacesAndAgentsByOwnerID(ctx context.Cont
1380613806
return out, nil
1380713807
}
1380813808

13809+
func (q *FakeQuerier) GetAuthorizedWorkspaceBuildParametersByBuildIDs(ctx context.Context, workspaceBuildIDs []uuid.UUID, prepared rbac.PreparedAuthorized) ([]database.WorkspaceBuildParameter, error) {
13810+
panic("not implemented")
13811+
}
13812+
1380913813
func (q *FakeQuerier) GetAuthorizedUsers(ctx context.Context, arg database.GetUsersParams, prepared rbac.PreparedAuthorized) ([]database.GetUsersRow, error) {
1381013814
if err := validateDatabaseType(arg); err != nil {
1381113815
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