Skip to content

Commit 8fd6f90

Browse files
committed
more tests and rbac fix
1 parent f617f94 commit 8fd6f90

File tree

13 files changed

+124
-24
lines changed

13 files changed

+124
-24
lines changed

coderd/coderd.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -918,7 +918,7 @@ func New(options *Options) *API {
918918
r.Route("/provisionerkeys", func(r chi.Router) {
919919
r.Get("/", api.provisionerKeys)
920920
r.Post("/", api.postProvisionerKey)
921-
r.Route("/{provisionerKey}", func(r chi.Router) {
921+
r.Route("/{provisionerkey}", func(r chi.Router) {
922922
r.Use(
923923
httpmw.ExtractProvisionerKeyParam(options.Database),
924924
)

coderd/database/dbauthz/dbauthz.go

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1075,10 +1075,7 @@ func (q *querier) DeleteOrganizationMember(ctx context.Context, arg database.Del
10751075
}
10761076

10771077
func (q *querier) DeleteProvisionerKey(ctx context.Context, id uuid.UUID) error {
1078-
if err := q.authorizeContext(ctx, policy.ActionDelete, rbac.ResourceProvisionerKeys); err != nil {
1079-
return err
1080-
}
1081-
return q.db.DeleteProvisionerKey(ctx, id)
1078+
return deleteQ(q.log, q.auth, q.db.GetProvisionerKeyByID, q.db.DeleteProvisionerKey)(ctx, id)
10821079
}
10831080

10841081
func (q *querier) DeleteReplicasUpdatedBefore(ctx context.Context, updatedAt time.Time) error {
@@ -1673,11 +1670,12 @@ func (q *querier) GetProvisionerJobsCreatedAfter(ctx context.Context, createdAt
16731670
return q.db.GetProvisionerJobsCreatedAfter(ctx, createdAt)
16741671
}
16751672

1673+
func (q *querier) GetProvisionerKeyByID(ctx context.Context, id uuid.UUID) (database.ProvisionerKey, error) {
1674+
return fetch(q.log, q.auth, q.db.GetProvisionerKeyByID)(ctx, id)
1675+
}
1676+
16761677
func (q *querier) GetProvisionerKeyByName(ctx context.Context, name database.GetProvisionerKeyByNameParams) (database.ProvisionerKey, error) {
1677-
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceProvisionerKeys); err != nil {
1678-
return database.ProvisionerKey{}, err
1679-
}
1680-
return q.db.GetProvisionerKeyByName(ctx, name)
1678+
return fetch(q.log, q.auth, q.db.GetProvisionerKeyByName)(ctx, name)
16811679
}
16821680

16831681
func (q *querier) GetProvisionerLogsAfterID(ctx context.Context, arg database.GetProvisionerLogsAfterIDParams) ([]database.ProvisionerJobLog, error) {
@@ -2625,10 +2623,7 @@ func (q *querier) InsertProvisionerJobLogs(ctx context.Context, arg database.Ins
26252623
}
26262624

26272625
func (q *querier) InsertProvisionerKey(ctx context.Context, arg database.InsertProvisionerKeyParams) (database.ProvisionerKey, error) {
2628-
if err := q.authorizeContext(ctx, policy.ActionCreate, rbac.ResourceProvisionerKeys); err != nil {
2629-
return database.ProvisionerKey{}, err
2630-
}
2631-
return q.db.InsertProvisionerKey(ctx, arg)
2626+
return insert(q.log, q.auth, rbac.ResourceProvisionerKeys.InOrg(arg.OrganizationID), q.db.InsertProvisionerKey)(ctx, arg)
26322627
}
26332628

26342629
func (q *querier) InsertReplica(ctx context.Context, arg database.InsertReplicaParams) (database.Replica, error) {
@@ -2860,10 +2855,7 @@ func (q *querier) InsertWorkspaceResourceMetadata(ctx context.Context, arg datab
28602855
}
28612856

28622857
func (q *querier) ListProvisionerKeysByOrganization(ctx context.Context, organizationID uuid.UUID) ([]database.ListProvisionerKeysByOrganizationRow, error) {
2863-
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceProvisionerKeys); err != nil {
2864-
return nil, err
2865-
}
2866-
return q.db.ListProvisionerKeysByOrganization(ctx, organizationID)
2858+
return fetchWithPostFilter(q.auth, policy.ActionRead, q.db.ListProvisionerKeysByOrganization)(ctx, organizationID)
28672859
}
28682860

28692861
func (q *querier) ListWorkspaceAgentPortShares(ctx context.Context, workspaceID uuid.UUID) ([]database.WorkspaceAgentPortShare, error) {

coderd/database/dbmem/dbmem.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3180,6 +3180,19 @@ func (q *FakeQuerier) GetProvisionerJobsCreatedAfter(_ context.Context, after ti
31803180
return jobs, nil
31813181
}
31823182

3183+
func (q *FakeQuerier) GetProvisionerKeyByID(ctx context.Context, id uuid.UUID) (database.ProvisionerKey, error) {
3184+
q.mutex.RLock()
3185+
defer q.mutex.RUnlock()
3186+
3187+
for _, key := range q.provisionerKeys {
3188+
if key.ID == id {
3189+
return key, nil
3190+
}
3191+
}
3192+
3193+
return database.ProvisionerKey{}, sql.ErrNoRows
3194+
}
3195+
31833196
func (q *FakeQuerier) GetProvisionerKeyByName(ctx context.Context, arg database.GetProvisionerKeyByNameParams) (database.ProvisionerKey, error) {
31843197
q.mutex.RLock()
31853198
defer q.mutex.RUnlock()

coderd/database/dbmetrics/dbmetrics.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/dbmock/dbmock.go

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

coderd/database/modelmethods.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,12 @@ func (p ProvisionerKey) RBACObject() rbac.Object {
218218
InOrg(p.OrganizationID)
219219
}
220220

221+
func (p ListProvisionerKeysByOrganizationRow) RBACObject() rbac.Object {
222+
return rbac.ResourceProvisionerKeys.
223+
WithID(p.ID).
224+
InOrg(p.OrganizationID)
225+
}
226+
221227
func (w WorkspaceProxy) RBACObject() rbac.Object {
222228
return rbac.ResourceWorkspaceProxy.
223229
WithID(w.ID)

coderd/database/querier.go

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

coderd/database/queries.sql.go

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

coderd/database/queries/provisionerkeys.sql

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,14 @@ INSERT INTO
1010
VALUES
1111
($1, $2, $3, $4, $5) RETURNING *;
1212

13+
-- name: GetProvisionerKeyByID :one
14+
SELECT
15+
*
16+
FROM
17+
provisioner_keys
18+
WHERE
19+
id = $1;
20+
1321
-- name: GetProvisionerKeyByName :one
1422
SELECT
1523
*

coderd/httpmw/provisionerkey.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ type provisionerKeyParamContextKey struct{}
1515

1616
// ProvisionerKeyParam returns the user from the ExtractProvisionerKeyParam handler.
1717
func ProvisionerKeyParam(r *http.Request) database.ProvisionerKey {
18-
user, ok := r.Context().Value(userParamContextKey{}).(database.ProvisionerKey)
18+
user, ok := r.Context().Value(provisionerKeyParamContextKey{}).(database.ProvisionerKey)
1919
if !ok {
2020
panic("developer error: provisioner key parameter middleware not provided")
2121
}
@@ -30,10 +30,10 @@ func ExtractProvisionerKeyParam(db database.Store) func(http.Handler) http.Handl
3030
ctx := r.Context()
3131
organization := OrganizationParam(r)
3232

33-
provisionerKeyQuery := chi.URLParam(r, "provisionerKey")
33+
provisionerKeyQuery := chi.URLParam(r, "provisionerkey")
3434
if provisionerKeyQuery == "" {
3535
httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
36-
Message: "\"provisionerKey\" must be provided.",
36+
Message: "\"provisionerkey\" must be provided.",
3737
})
3838
return
3939
}

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