Skip to content

Commit ad8c314

Browse files
authored
chore: implement api for creating custom roles (coder#13298)
api endpoint (gated by experiment) to create custom_roles
1 parent 85de0e9 commit ad8c314

33 files changed

+1009
-132
lines changed

coderd/apidoc/docs.go

+82-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/apidoc/swagger.json

+82-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/audit.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -196,12 +196,12 @@ func (api *API) convertAuditLog(ctx context.Context, dblog database.GetAuditLogs
196196
CreatedAt: dblog.UserCreatedAt.Time,
197197
Status: codersdk.UserStatus(dblog.UserStatus.UserStatus),
198198
},
199-
Roles: []codersdk.Role{},
199+
Roles: []codersdk.SlimRole{},
200200
}
201201

202202
for _, roleName := range dblog.UserRoles {
203203
rbacRole, _ := rbac.RoleByName(roleName)
204-
user.Roles = append(user.Roles, db2sdk.Role(rbacRole))
204+
user.Roles = append(user.Roles, db2sdk.SlimRole(rbacRole))
205205
}
206206
}
207207

coderd/coderd.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ import (
6161
"github.com/coder/coder/v2/coderd/provisionerdserver"
6262
"github.com/coder/coder/v2/coderd/rbac"
6363
"github.com/coder/coder/v2/coderd/rbac/policy"
64+
"github.com/coder/coder/v2/coderd/rbac/rolestore"
6465
"github.com/coder/coder/v2/coderd/schedule"
6566
"github.com/coder/coder/v2/coderd/telemetry"
6667
"github.com/coder/coder/v2/coderd/tracing"
@@ -631,6 +632,7 @@ func New(options *Options) *API {
631632
httpmw.AttachRequestID,
632633
httpmw.ExtractRealIP(api.RealIPConfig),
633634
httpmw.Logger(api.Logger),
635+
rolestore.CustomRoleMW,
634636
prometheusMW,
635637
// Build-Version is helpful for debugging.
636638
func(next http.Handler) http.Handler {
@@ -915,7 +917,7 @@ func New(options *Options) *API {
915917
r.Post("/logout", api.postLogout)
916918
// These routes query information about site wide roles.
917919
r.Route("/roles", func(r chi.Router) {
918-
r.Get("/", api.assignableSiteRoles)
920+
r.Get("/", api.AssignableSiteRoles)
919921
})
920922
r.Route("/{user}", func(r chi.Router) {
921923
r.Use(httpmw.ExtractUserParam(options.Database))

0 commit comments

Comments
 (0)