Files
2026-07-09 14:16:56 +08:00

37 lines
1.7 KiB
Go

package model
import "time"
// AuditSettings 审计策略配置(单行) // Logan.Li
type AuditSettings struct {
ID uint `gorm:"primarykey" json:"id"`
RetentionDays int `gorm:"default:180;not null" json:"retention_days"`
RecordAll bool `gorm:"default:true" json:"record_all"`
SessionWatermarkEnabled bool `gorm:"default:true;not null" json:"session_watermark_enabled"`
SessionRecordEnabled bool `gorm:"default:true;not null" json:"session_record_enabled"`
ClipboardEnabled bool `gorm:"default:true;not null" json:"clipboard_enabled"`
FileUploadEnabled bool `gorm:"default:true;not null" json:"file_upload_enabled"`
FileDownloadEnabled bool `gorm:"default:true;not null" json:"file_download_enabled"`
CommandPolicyEnabled bool `gorm:"default:false;not null" json:"command_policy_enabled"`
ApprovalRequired bool `gorm:"default:false;not null" json:"approval_required"`
LastCleanupAt *time.Time `json:"last_cleanup_at,omitempty"`
LastCleanupSummary string `gorm:"size:500" json:"last_cleanup_summary,omitempty"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
func (AuditSettings) TableName() string { return "audit_settings" }
// AllowedAuditRetentionDays 允许的日志保留天数 // Logan.Li
var AllowedAuditRetentionDays = []int{7, 15, 30, 90, 180, 365}
// IsValidRetentionDays 校验保留天数 // Logan.Li
func IsValidRetentionDays(days int) bool {
for _, d := range AllowedAuditRetentionDays {
if d == days {
return true
}
}
return false
}