diff --git a/api/handler/admin/user_handler.go b/api/handler/admin/user_handler.go index 4c247fbe..56bfd45b 100644 --- a/api/handler/admin/user_handler.go +++ b/api/handler/admin/user_handler.go @@ -17,6 +17,7 @@ import ( "geekai/store/vo" "geekai/utils" "geekai/utils/resp" + "github.com/go-redis/redis/v8" "time" "github.com/gin-gonic/gin" @@ -26,10 +27,11 @@ import ( type UserHandler struct { handler.BaseHandler licenseService *service.LicenseService + redis *redis.Client } -func NewUserHandler(app *core.AppServer, db *gorm.DB, licenseService *service.LicenseService) *UserHandler { - return &UserHandler{BaseHandler: handler.BaseHandler{App: app, DB: db}, licenseService: licenseService} +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, redis: redisCli} } // List 用户列表 @@ -140,6 +142,13 @@ func (h *UserHandler) Save(c *gin.Context) { 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 { // 检查用户是否已经存在 h.DB.Where("username", data.Username).First(&user)