5c69113911
* audit wip * finish API coverage * fix unit test * remove sample logging and audit config * default logger * fix go.mod and go.sum
38 lines
914 B
Go
38 lines
914 B
Go
package api
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/mattermost/focalboard/server/model"
|
|
"github.com/mattermost/focalboard/server/services/audit"
|
|
)
|
|
|
|
// makeAuditRecord creates an audit record pre-populated with data from the request.
|
|
func (a *API) makeAuditRecord(r *http.Request, event string, initialStatus string) *audit.Record {
|
|
ctx := r.Context()
|
|
var sessionID string
|
|
var userID string
|
|
if session, ok := ctx.Value("session").(*model.Session); ok {
|
|
sessionID = session.ID
|
|
userID = session.UserID
|
|
}
|
|
|
|
workspaceID := "unknown"
|
|
container, err := a.getContainer(r)
|
|
if err == nil {
|
|
workspaceID = container.WorkspaceID
|
|
}
|
|
|
|
rec := &audit.Record{
|
|
APIPath: r.URL.Path,
|
|
Event: event,
|
|
Status: initialStatus,
|
|
UserID: userID,
|
|
SessionID: sessionID,
|
|
Client: r.UserAgent(),
|
|
IPAddress: r.RemoteAddr,
|
|
Meta: []audit.Meta{{K: audit.KeyWorkspaceID, V: workspaceID}},
|
|
}
|
|
|
|
return rec
|
|
}
|