Skip to content

Commit dff9a95

Browse files
committed
Add required audit functions
1 parent e64c303 commit dff9a95

File tree

3 files changed

+23
-4
lines changed

3 files changed

+23
-4
lines changed

coderd/audit/request.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ func ResourceTarget[T Auditable](tgt T) string {
105105
return typed.DisplaySecret
106106
case database.CustomRole:
107107
return typed.Name
108+
case database.OrganizationMember:
109+
return typed.UserID.String()
108110
default:
109111
panic(fmt.Sprintf("unknown resource %T for ResourceTarget", tgt))
110112
}

coderd/members.go

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -170,11 +170,20 @@ func (api *API) listMembers(rw http.ResponseWriter, r *http.Request) {
170170
// @Router /organizations/{organization}/members/{user}/roles [put]
171171
func (api *API) putMemberRoles(rw http.ResponseWriter, r *http.Request) {
172172
var (
173-
ctx = r.Context()
174-
organization = httpmw.OrganizationParam(r)
175-
member = httpmw.OrganizationMemberParam(r)
176-
apiKey = httpmw.APIKey(r)
173+
ctx = r.Context()
174+
organization = httpmw.OrganizationParam(r)
175+
member = httpmw.OrganizationMemberParam(r)
176+
apiKey = httpmw.APIKey(r)
177+
auditor = api.Auditor.Load()
178+
aReq, commitAudit = audit.InitRequest[database.OrganizationMember](rw, &audit.RequestParams{
179+
Audit: *auditor,
180+
Log: api.Logger,
181+
Request: r,
182+
Action: database.AuditActionDelete,
183+
})
177184
)
185+
aReq.Old = member.OrganizationMember
186+
defer commitAudit()
178187

179188
if apiKey.UserID == member.UserID {
180189
httpapi.Write(ctx, rw, http.StatusBadRequest, codersdk.Response{
@@ -203,6 +212,7 @@ func (api *API) putMemberRoles(rw http.ResponseWriter, r *http.Request) {
203212
})
204213
return
205214
}
215+
aReq.New = updatedUser
206216

207217
resp, err := convertOrganizationMembers(ctx, api.Database, []database.OrganizationMember{updatedUser})
208218
if err != nil {

enterprise/audit/table.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,13 @@ type Table map[string]map[string]Action
5050
var AuditableResources = auditMap(auditableResourcesTypes)
5151

5252
var auditableResourcesTypes = map[any]map[string]Action{
53+
&database.OrganizationMember{}: {
54+
"user_id": ActionTrack,
55+
"organization_id": ActionTrack,
56+
"created_at": ActionTrack,
57+
"updated_at": ActionTrack,
58+
"roles": ActionTrack,
59+
},
5360
&database.CustomRole{}: {
5461
"name": ActionTrack,
5562
"display_name": ActionTrack,

0 commit comments

Comments
 (0)