8000 like this right? · coder/coder@35ac954 · GitHub
[go: up one dir, main page]

Skip to content

Commit 35ac954

Browse files
committed
like this right?
1 parent 3a403c1 commit 35ac954

File tree

25 files changed

+707
-345
lines changed

25 files changed

+707
-345
lines changed

coderd/apidoc/docs.go

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

coderd/apidoc/swagger.json

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

coderd/coderd.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1100,10 +1100,6 @@ func New(options *Options) *API {
11001100
// The idea is to return an empty [], so that the coder CLI won't get blocked accidentally.
11011101
r.Get("/schema", templateVersionSchemaDeprecated)
11021102
r.Get("/parameters", templateVersionParametersDeprecated)
1103-
r.Group(func(r chi.Router) {
1104-
r.Use(httpmw.RequireExperiment(api.Experiments, codersdk.ExperimentDynamicParameters))
1105-
r.Get("/dynamic-parameters", api.templateVersionDynamicParameters)
1106-
})
11071103
r.Get("/rich-parameters", api.templateVersionRichParameters)
11081104
r.Get("/external-auth", api.templateVersionExternalAuth)
11091105
r.Get("/variables", api.templateVersionVariables)
@@ -1169,6 +1165,17 @@ func New(options *Options) *API {
11691165
// organization member. This endpoint should match the authz story of
11701166
// postWorkspacesByOrganization
11711167
r.Post("/workspaces", api.postUserWorkspaces)
1168+
1169+
// Similarly to creating a workspace, evaluating parameters for a
1170+
// new workspace should also match the authz story of
1171+
// postWorkspacesByOrganization
1172+
r.Route("/templateversions/{templateversion}", func(r chi.Router) {
1173+
r.Use(
1174+
httpmw.ExtractTemplateVersionParam(options.Database),
1175+
httpmw.RequireExperiment(api.Experiments, codersdk.ExperimentDynamicParameters),
1176+
)
1177+
r.Get("/parameters", api.templateVersionDynamicParameters)
1178 EDBE +
})
11721179
})
11731180

11741181
r.Group(func(r chi.Router) {

coderd/database/dbauthz/dbauthz.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2102,6 +2102,13 @@ func (q *querier) GetOrganizationIDsByMemberIDs(ctx context.Context, ids []uuid.
21022102
return fetchWithPostFilter(q.auth, policy.ActionRead, q.db.GetOrganizationIDsByMemberIDs)(ctx, ids)
21032103
}
21042104

2105+
func (q *querier) GetOrganizationMemberRoles(ctx context.Context, params database.GetOrganizationMemberRolesParams) ([]string, error) {
2106+
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceOrganizationMember.InOrg(params.OrganizationID)); err != nil {
2107+
return nil, err
2108+
}
2109+
return q.db.GetOrganizationMemberRoles(ctx, params)
2110+
}
2111+
21052112
func (q *querier) GetOrganizationResourceCountByID(ctx context.Context, organizationID uuid.UUID) (database.GetOrganizationResourceCountByIDRow, error) {
21062113
// Can read org members
21072114
if err := q.authorizeContext(ctx, policy.ActionRead, rbac.ResourceOrganizationMember.InOrg(organizationID)); err != nil {

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -874,6 +874,13 @@ func (s *MethodTestSuite) TestOrganization() {
874874
check.Args([]uuid.UUID{ma.UserID, mb.UserID}).
875875
Asserts(rbac.ResourceUserObject(ma.UserID), policy.ActionRead, rbac.ResourceUserObject(mb.UserID), policy.ActionRead).OutOfOrder()
876876
}))
877+
s.Run("GetOrganizationMemberRoles", s.Subtest(func(db database.Store, check *expects) {
878+
o := dbgen.Organization(s.T(), db, database.Organization{})
879+
u := dbgen.User(s.T(), db, database.User{})
880+
_ = dbgen.OrganizationMember(s.T(), db, database.OrganizationMember{OrganizationID: o.ID, UserID: u.ID})
881+
check.Args(database.GetOrganizationMemberRolesParams{OrganizationID: o.ID, UserID: u.ID}).
882+
Asserts(rbac.ResourceOrganizationMember.InOrg(o.ID), policy.ActionRead)
883+
}))
877884
s.Run("GetOrganizations", s.Subtest(func(db database.Store, check *expects) {
878885
def, _ := db.GetDefaultOrganization(context.Background())
879886
a := dbgen.Organization(s.T(), db, database.Organization{})

coderd/database/dbmem/dbmem.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4094,6 +4094,16 @@ func (q *FakeQuerier) GetOrganizationIDsByMemberIDs(_ context.Context, ids []uui
40944094
return getOrganizationIDsByMemberIDRows, nil
40954095
}
40964096

4097+
func (q *FakeQuerier) GetOrganizationMemberRoles(ctx context.Context, params database.GetOrganizationMemberRolesParams) ([]string, error) {
4098+
for _, it := range q.organizationMembers {
4099+
if it.UserID == params.UserID && it.OrganizationID == params.OrganizationID {
4100+
return it.Roles, nil
4101+
}
4102+
}
4103+
4104+
return nil, sql.ErrNoRows
4105+
}
4106+
40974107
func (q *FakeQuerier) GetOrganizationResourceCountByID(_ context.Context, organizationID uuid.UUID) (database.GetOrganizationResourceCountByIDRow, error) {
40984108
q.mutex.RLock()
40994109
defer q.mutex.RUnlock()

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/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/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.

0 commit comments

Comments
 (0)
0