use base context to handle the cases where the user IP address is unavailable

This commit is contained in:
MaysWind 2026-04-09 23:44:53 +08:00
parent fcedb3147d
commit d44798bf0f
6 changed files with 18 additions and 2 deletions

View file

@ -383,7 +383,7 @@ func (c *DataTableTransactionDataImporter) ParseImportedData(ctx core.Context, u
Comment: description,
GeoLongitude: geoLongitude,
GeoLatitude: geoLatitude,
CreatedIp: "127.0.0.1",
CreatedIp: ctx.ClientIP(),
},
TagIds: tagIds,
OriginalCategoryName: subCategoryName,

View file

@ -5,6 +5,7 @@ import "context"
// Context is the base context of ezBookkeeping
type Context interface {
context.Context
ClientIP() string
GetContextId() string
GetClientLocale() string
}

View file

@ -12,6 +12,11 @@ type CliContext struct {
command *cli.Command
}
// ClientIP returns the client IP address, for CLI context, it always returns the loopback address
func (c *CliContext) ClientIP() string {
return "127.0.0.1"
}
// GetContextId returns the current context id
func (c *CliContext) GetContextId() string {
return ""

View file

@ -14,6 +14,11 @@ type CronContext struct {
cronJobInterval time.Duration
}
// ClientIP returns the client IP address, for cron job context, it always returns the loopback address
func (c *CronContext) ClientIP() string {
return "127.0.0.1"
}
// GetContextId returns the current context id
func (c *CronContext) GetContextId() string {
return c.contextId

View file

@ -9,6 +9,11 @@ type NullContext struct {
context.Context
}
// ClientIP returns the client IP address, for null context, it always returns the loopback address
func (c *NullContext) ClientIP() string {
return "127.0.0.1"
}
// GetContextId returns the current context id
func (c *NullContext) GetContextId() string {
return nullContextId

View file

@ -778,7 +778,7 @@ func (s *TransactionService) CreateScheduledTransactions(c core.Context, current
Amount: template.Amount,
HideAmount: template.HideAmount,
Comment: template.Comment,
CreatedIp: "127.0.0.1",
CreatedIp: c.ClientIP(),
ScheduledCreated: true,
}