From ff1ee6b076586cb5009e452bb9d39822df91973e Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期六, 28 十月 2023 18:25:12 +0800
Subject: [PATCH] fix
---
middleware/refresh_user.go | 1 +
service/lru.go | 17 +++++++++++------
middleware/jwt.go | 12 +++++++-----
model/user.go | 4 ++--
4 files changed, 21 insertions(+), 13 deletions(-)
diff --git a/middleware/jwt.go b/middleware/jwt.go
index 5007bac..907a1d0 100644
--- a/middleware/jwt.go
+++ b/middleware/jwt.go
@@ -98,11 +98,8 @@
// parseToken 瑙f瀽token鍖呭惈鐨勪俊鎭�
claims, err := j.ParseToken(token)
if err != nil {
- if err == utils.TokenExpired {
- c.Next()
- return
- }
- c.Next()
+ ctx.Fail(ecode.JWTDisabled)
+ c.Abort()
return
}
userInfo := service.GetUserBaseCache(claims.UserId)
@@ -110,6 +107,11 @@
SyncUserInfo([]string{claims.UserId})
userInfo = service.GetUserBaseCache(claims.UserId)
}
+ if userInfo == nil {
+ ctx.Fail(ecode.JWTDisabled)
+ c.Abort()
+ return
+ }
SetActiveTime(claims.UserId)
diff --git a/middleware/refresh_user.go b/middleware/refresh_user.go
index 22db40c..c1ae38d 100644
--- a/middleware/refresh_user.go
+++ b/middleware/refresh_user.go
@@ -43,6 +43,7 @@
intervalRefreshUserMinute: intervalRefreshUserMinute,
ctx: ctx,
cancel: cancel,
+ Users: map[string]*CurrentActiveUser{},
}
}
diff --git a/model/user.go b/model/user.go
index 42f71dd..db6afb1 100644
--- a/model/user.go
+++ b/model/user.go
@@ -314,11 +314,11 @@
func (slf *UserSearch) UUID2CrmUserId(userIds []string) ([]*IdPair, error) {
var (
records = make([]*IdPair, 0)
- db = slf.build()
+ db = slf.Orm.Model(&User{})
)
db = db.Where("uuid in ?", userIds)
- if err := db.Find(&records).Error; err != nil {
+ if err := db.Select("user.id, user.uuid").Find(&records).Error; err != nil {
return records, fmt.Errorf("find all err: %v", err)
}
diff --git a/service/lru.go b/service/lru.go
index 040f2b6..4a9f173 100644
--- a/service/lru.go
+++ b/service/lru.go
@@ -20,18 +20,23 @@
}
func GetUserBaseCache(adminUserId string) *UserBaseInfo {
- userCache, ok := userCache.Get(adminUserId)
+ cache, ok := userCache.Get(adminUserId)
if !ok {
userService := UserService{}
userRecord, err := userService.GetUserInfo(adminUserId)
if err != nil {
return nil
}
- subIds, _, err := userService.UUID2CrmUserId(strings.Split(userRecord.SubUserIds, ","))
- subIds = append(subIds, userRecord.ID)
- if err != nil {
- return nil
+ var subIds []int
+ if len(userRecord.SubUserIds) > 0 {
+ subIds, _, err = userService.UUID2CrmUserId(strings.Split(userRecord.SubUserIds, ","))
+ if err != nil {
+ return nil
+ }
}
+
+ subIds = append(subIds, userRecord.ID)
+
baseInfo := &UserBaseInfo{
UserId: userRecord.ID,
NickName: userRecord.NickName,
@@ -40,7 +45,7 @@
SetUserBaseCache(adminUserId, baseInfo)
return baseInfo
}
- return userCache
+ return cache
}
func SetUserBaseCache(adminUserId string, user *UserBaseInfo) {
--
Gitblit v1.8.0