diff --git a/server/Makefile b/server/Makefile index 5a5fb00..6b372ff 100644 --- a/server/Makefile +++ b/server/Makefile @@ -1,14 +1,15 @@ APP_NAME=backupx BUILD_DIR=./bin +VERSION=$(shell git describe --tags --always --dirty 2>/dev/null || echo "dev") .PHONY: build run test build: mkdir -p $(BUILD_DIR) - go build -o $(BUILD_DIR)/$(APP_NAME) ./cmd/backupx + go build -trimpath -ldflags "-s -w -X main.version=$(VERSION)" -o $(BUILD_DIR)/$(APP_NAME) ./cmd/backupx run: - go run ./cmd/backupx + go run -ldflags "-X main.version=$(VERSION)" ./cmd/backupx test: go test ./... diff --git a/server/internal/http/backup_record_handler.go b/server/internal/http/backup_record_handler.go index 0f13237..18f3c24 100644 --- a/server/internal/http/backup_record_handler.go +++ b/server/internal/http/backup_record_handler.go @@ -130,7 +130,7 @@ func (h *BackupRecordHandler) Restore(c *gin.Context) { response.Error(c, err) return } - recordAudit(c, h.auditService, "backup_record", "restore", "backup_record", fmt.Sprintf("%d", id), "", "") + recordAudit(c, h.auditService, "backup_record", "restore", "backup_record", fmt.Sprintf("%d", id), "", fmt.Sprintf("恢复备份记录 #%d", id)) response.Success(c, gin.H{"restored": true}) } @@ -143,7 +143,7 @@ func (h *BackupRecordHandler) Delete(c *gin.Context) { response.Error(c, err) return } - recordAudit(c, h.auditService, "backup_record", "delete", "backup_record", fmt.Sprintf("%d", id), "", "") + recordAudit(c, h.auditService, "backup_record", "delete", "backup_record", fmt.Sprintf("%d", id), "", fmt.Sprintf("删除备份记录 #%d", id)) response.Success(c, gin.H{"deleted": true}) } diff --git a/server/internal/http/backup_task_handler.go b/server/internal/http/backup_task_handler.go index 41da780..2534ca8 100644 --- a/server/internal/http/backup_task_handler.go +++ b/server/internal/http/backup_task_handler.go @@ -51,7 +51,7 @@ func (h *BackupTaskHandler) Create(c *gin.Context) { response.Error(c, err) return } - recordAudit(c, h.auditService, "backup_task", "create", "backup_task", fmt.Sprintf("%d", item.ID), item.Name, "") + recordAudit(c, h.auditService, "backup_task", "create", "backup_task", fmt.Sprintf("%d", item.ID), item.Name, fmt.Sprintf("类型: %s", input.Type)) response.Success(c, item) } @@ -70,7 +70,7 @@ func (h *BackupTaskHandler) Update(c *gin.Context) { response.Error(c, err) return } - recordAudit(c, h.auditService, "backup_task", "update", "backup_task", fmt.Sprintf("%d", item.ID), item.Name, "") + recordAudit(c, h.auditService, "backup_task", "update", "backup_task", fmt.Sprintf("%d", item.ID), item.Name, fmt.Sprintf("类型: %s, Cron: %s", input.Type, input.CronExpr)) response.Success(c, item) } @@ -83,7 +83,7 @@ func (h *BackupTaskHandler) Delete(c *gin.Context) { response.Error(c, err) return } - recordAudit(c, h.auditService, "backup_task", "delete", "backup_task", fmt.Sprintf("%d", id), "", "") + recordAudit(c, h.auditService, "backup_task", "delete", "backup_task", fmt.Sprintf("%d", id), "", fmt.Sprintf("删除备份任务 #%d", id)) response.Success(c, gin.H{"deleted": true}) } @@ -115,6 +115,6 @@ func (h *BackupTaskHandler) Toggle(c *gin.Context) { if !enabled { action = "disable" } - recordAudit(c, h.auditService, "backup_task", action, "backup_task", fmt.Sprintf("%d", id), item.Name, "") + recordAudit(c, h.auditService, "backup_task", action, "backup_task", fmt.Sprintf("%d", id), item.Name, fmt.Sprintf("%s 备份任务", action)) response.Success(c, item) } diff --git a/server/internal/http/settings_handler.go b/server/internal/http/settings_handler.go index d52e3ec..ae1f2a7 100644 --- a/server/internal/http/settings_handler.go +++ b/server/internal/http/settings_handler.go @@ -1,6 +1,9 @@ package http import ( + "fmt" + "strings" + "backupx/server/internal/apperror" "backupx/server/internal/service" "backupx/server/pkg/response" @@ -36,6 +39,10 @@ func (h *SettingsHandler) Update(c *gin.Context) { response.Error(c, err) return } - recordAudit(c, h.auditService, "settings", "update", "settings", "", "", "") + keys := make([]string, 0, len(input)) + for k := range input { + keys = append(keys, k) + } + recordAudit(c, h.auditService, "settings", "update", "settings", "", "", fmt.Sprintf("修改设置: %s", strings.Join(keys, ", "))) response.Success(c, settings) } diff --git a/server/internal/http/storage_target_handler.go b/server/internal/http/storage_target_handler.go index 4c1c2b5..3a18c48 100644 --- a/server/internal/http/storage_target_handler.go +++ b/server/internal/http/storage_target_handler.go @@ -65,7 +65,7 @@ func (h *StorageTargetHandler) Create(c *gin.Context) { response.Error(c, err) return } - recordAudit(c, h.auditService, "storage_target", "create", "storage_target", fmt.Sprintf("%d", item.ID), item.Name, "") + recordAudit(c, h.auditService, "storage_target", "create", "storage_target", fmt.Sprintf("%d", item.ID), item.Name, fmt.Sprintf("类型: %s", input.Type)) response.Success(c, item) } @@ -84,7 +84,7 @@ func (h *StorageTargetHandler) Update(c *gin.Context) { response.Error(c, err) return } - recordAudit(c, h.auditService, "storage_target", "update", "storage_target", fmt.Sprintf("%d", item.ID), item.Name, "") + recordAudit(c, h.auditService, "storage_target", "update", "storage_target", fmt.Sprintf("%d", item.ID), item.Name, fmt.Sprintf("类型: %s", input.Type)) response.Success(c, item) } @@ -97,7 +97,7 @@ func (h *StorageTargetHandler) Delete(c *gin.Context) { response.Error(c, err) return } - recordAudit(c, h.auditService, "storage_target", "delete", "storage_target", fmt.Sprintf("%d", id), "", "") + recordAudit(c, h.auditService, "storage_target", "delete", "storage_target", fmt.Sprintf("%d", id), "", fmt.Sprintf("删除存储目标 #%d", id)) response.Success(c, gin.H{"deleted": true}) }