This commit is contained in:
2025-06-25 16:11:03 +08:00
parent b48d14a6fb
commit 4186cd0caf
16 changed files with 690 additions and 26 deletions

View File

@@ -45,7 +45,7 @@ func Audit(sess session.Manager, log *logger.Logger, task tasks.TaskDistributor)
c, cancel := context.WithTimeout(ctx, 2*time.Second)
defer cancel()
if err := task.DistributeTaskConsumeAuditLog(c, payload, opts...); err != nil {
log.Error("distribute task failed", err,
zap.String("type", "audit"),

View File

@@ -5,6 +5,7 @@ import (
"errors"
"management/internal/erpserver/model/dto"
"management/internal/erpserver/model/system"
"management/internal/pkg/sqldb"
"github.com/a-h/templ"
@@ -12,15 +13,15 @@ import (
type userKey struct{}
func setUser(ctx context.Context, usr dto.AuthorizeUser) context.Context {
func setUser(ctx context.Context, usr system.AuthorizeUser) context.Context {
return context.WithValue(ctx, userKey{}, usr)
}
// GetUser returns the user from the context.
func GetUser(ctx context.Context) dto.AuthorizeUser {
v, ok := ctx.Value(userKey{}).(dto.AuthorizeUser)
func GetUser(ctx context.Context) system.AuthorizeUser {
v, ok := ctx.Value(userKey{}).(system.AuthorizeUser)
if !ok {
return dto.AuthorizeUser{}
return system.AuthorizeUser{}
}
return v

View File

@@ -7,7 +7,7 @@ import (
"net/http"
"time"
"management/internal/erpserver/model/dto"
"management/internal/erpserver/model/system"
"management/internal/pkg/config"
"github.com/alexedwards/scs/v2"
@@ -19,8 +19,8 @@ var ErrNoSession = errors.New("session user not found")
// Manager 抽象核心会话操作
type Manager interface {
Load(next http.Handler) http.Handler
GetUser(ctx context.Context, key string) (dto.AuthorizeUser, error)
PutUser(ctx context.Context, key string, user dto.AuthorizeUser) error
GetUser(ctx context.Context, key string) (system.AuthorizeUser, error)
PutUser(ctx context.Context, key string, user system.AuthorizeUser) error
RenewToken(ctx context.Context) error
Destroy(ctx context.Context) error
}
@@ -60,20 +60,20 @@ func (s *SCSSession) Load(next http.Handler) http.Handler {
return s.manager.LoadAndSave(next)
}
func (s *SCSSession) GetUser(ctx context.Context, key string) (dto.AuthorizeUser, error) {
func (s *SCSSession) GetUser(ctx context.Context, key string) (system.AuthorizeUser, error) {
data, ok := s.manager.Get(ctx, key).([]byte)
if !ok || len(data) == 0 {
return dto.AuthorizeUser{}, ErrNoSession
return system.AuthorizeUser{}, ErrNoSession
}
var user dto.AuthorizeUser
var user system.AuthorizeUser
if err := json.Unmarshal(data, &user); err != nil {
return dto.AuthorizeUser{}, err
return system.AuthorizeUser{}, err
}
return user, nil
}
func (s *SCSSession) PutUser(ctx context.Context, key string, user dto.AuthorizeUser) error {
func (s *SCSSession) PutUser(ctx context.Context, key string, user system.AuthorizeUser) error {
data, err := json.Marshal(&user)
if err != nil {
return err