readysite / website / models / audit.go
745 B
audit.go
package models

import "github.com/readysite/readysite/pkg/database"

// AuditLog records create, update, and delete operations for auditing.
type AuditLog struct {
	database.Model
	UserID       string // User who performed the action
	Action       string // create, update, delete
	ResourceType string // page, collection, document, endpoint, file, user
	ResourceID   string // ID of affected resource
	ResourceName string // Human-readable name/title of resource (for display)
	Details      string // JSON details of the change
	IP           string // Client IP address
}

// User returns the user who performed this action.
func (a *AuditLog) User() *User {
	if a.UserID == "" {
		return nil
	}
	user, _ := Users.Get(a.UserID)
	return user
}
← Back