diff --git a/internal/app/app.go b/internal/app/app.go index ce8122b..47afcc1 100644 --- a/internal/app/app.go +++ b/internal/app/app.go @@ -38,8 +38,8 @@ func New(cfg *config.Config, bus evbus.MessageBus, authenticator Authenticator, startupContext, cancel := context.WithTimeout(context.Background(), 30*time.Second) defer cancel() - // The first user in the DB is admin. - startupContext = context.WithValue(startupContext, domain.CtxUserInfo, domain.GetAdminInfo()) + // Switch to admin user context + startupContext = domain.SetUserInfo(startupContext, domain.SystemAdminContextUserInfo()) if err := a.createDefaultUser(startupContext); err != nil { return nil, fmt.Errorf("failed to create default user: %w", err) diff --git a/internal/domain/context.go b/internal/domain/context.go index 4e65430..a5c4e48 100644 --- a/internal/domain/context.go +++ b/internal/domain/context.go @@ -20,6 +20,13 @@ func DefaultContextUserInfo() *ContextUserInfo { } } +func SystemAdminContextUserInfo() *ContextUserInfo { + return &ContextUserInfo{ + Id: "_WG_SYS_ADMIN_", + IsAdmin: true, + } +} + func SetUserInfoFromGin(c *gin.Context) context.Context { ginUserInfo, exists := c.Get(CtxUserInfo) @@ -30,7 +37,7 @@ func SetUserInfoFromGin(c *gin.Context) context.Context { } } - ctx := context.WithValue(c.Request.Context(), CtxUserInfo, info) + ctx := SetUserInfo(c.Request.Context(), info) return ctx } @@ -51,9 +58,3 @@ func GetUserInfo(ctx context.Context) *ContextUserInfo { return DefaultContextUserInfo() } - -func GetAdminInfo() *ContextUserInfo { - userInfo := DefaultContextUserInfo() - userInfo.IsAdmin = true - return userInfo -}