audit.go
TLDR
This file contains a single method called makeAuditRecord
which creates an audit record pre-populated with data from the HTTP request.
Methods
makeAuditRecord
This method takes an HTTP request, an event string, and an initial status string as input. It creates an audit.Record
object and populates it with data extracted from the request such as the API path, event, status, user ID, session ID, client (user agent), IP address, and team ID. It then returns the created audit.Record
object.
Parameters:
-
r *http.Request
: The HTTP request object. -
event string
: The event string that describes the type of audit event. -
initialStatus string
: The initial status of the audit record.
Returns:
-
*audit.Record
: The created audit record object.
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 { //nolint:unparam
ctx := r.Context()
var sessionID string
var userID string
if session, ok := ctx.Value(sessionContextKey).(*model.Session); ok {
sessionID = session.ID
userID = session.UserID
}
teamID := "unknown"
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.KeyTeamID, V: teamID}},
}
return rec
}