logout the user when it has been disabled

This commit is contained in:
RockYang 2024-09-20 16:49:03 +08:00
parent 5fa17b300e
commit d315edef5f

View File

@ -17,6 +17,7 @@ import (
"geekai/store/vo" "geekai/store/vo"
"geekai/utils" "geekai/utils"
"geekai/utils/resp" "geekai/utils/resp"
"github.com/go-redis/redis/v8"
"time" "time"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
@ -26,10 +27,11 @@ import (
type UserHandler struct { type UserHandler struct {
handler.BaseHandler handler.BaseHandler
licenseService *service.LicenseService licenseService *service.LicenseService
redis *redis.Client
} }
func NewUserHandler(app *core.AppServer, db *gorm.DB, licenseService *service.LicenseService) *UserHandler { func NewUserHandler(app *core.AppServer, db *gorm.DB, licenseService *service.LicenseService, redisCli *redis.Client) *UserHandler {
return &UserHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}, licenseService: licenseService} return &UserHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}, licenseService: licenseService, redis: redisCli}
} }
// List 用户列表 // List 用户列表
@ -140,6 +142,13 @@ func (h *UserHandler) Save(c *gin.Context) {
CreatedAt: time.Now(), CreatedAt: time.Now(),
}) })
} }
// 如果禁用了用户,则将用户踢下线
if user.Status == false {
key := fmt.Sprintf("users/%v", user.Id)
if _, err := h.redis.Del(c, key).Result(); err != nil {
logger.Error("error with delete session: ", err)
}
}
} else { } else {
// 检查用户是否已经存在 // 检查用户是否已经存在
h.DB.Where("username", data.Username).First(&user) h.DB.Where("username", data.Username).First(&user)