fixed bug, filelist page support pagination, do not load captcha component for user login first time

This commit is contained in:
RockYang
2024-09-13 17:03:05 +08:00
parent c18d272413
commit 69cb479e01
11 changed files with 33 additions and 19 deletions

View File

@@ -25,7 +25,7 @@ func (h *ChatAppTypeHandler) Save(c *gin.Context) {
var data struct {
Id uint `json:"id"`
Name string `json:"name"`
Enable bool `json:"enable"`
Enabled bool `json:"enabled"`
Icon string `json:"icon"`
SortNum int `json:"sort_num"`
}
@@ -43,7 +43,7 @@ func (h *ChatAppTypeHandler) Save(c *gin.Context) {
err = h.DB.Create(&model.AppType{
Name: data.Name,
Icon: data.Icon,
Enabled: data.Enable,
Enabled: data.Enabled,
SortNum: data.SortNum,
}).Error
if err != nil {
@@ -54,7 +54,7 @@ func (h *ChatAppTypeHandler) Save(c *gin.Context) {
err := h.DB.Model(&model.AppType{}).Where("id", data.Id).Updates(map[string]interface{}{
"name": data.Name,
"icon": data.Icon,
"enabled": data.Enable,
"enabled": data.Enabled,
}).Error
if err != nil {
resp.ERROR(c, err.Error())

View File

@@ -244,8 +244,10 @@ func (h *UserHandler) Login(c *gin.Context) {
resp.ERROR(c, types.InvalidArgs)
return
}
verifyKey := fmt.Sprintf("users/verify/%s", data.Username)
needVerify, err := h.redis.Get(c, verifyKey).Bool()
if h.App.SysConfig.EnabledVerify {
if h.App.SysConfig.EnabledVerify && needVerify {
var check bool
if data.X != 0 {
check = h.captcha.SlideCheck(data)
@@ -261,12 +263,14 @@ func (h *UserHandler) Login(c *gin.Context) {
var user model.User
res := h.DB.Where("username = ?", data.Username).First(&user)
if res.Error != nil {
h.redis.Set(c, verifyKey, true, 0)
resp.ERROR(c, "用户名不存在")
return
}
password := utils.GenPassword(data.Password, user.Salt)
if password != user.Password {
h.redis.Set(c, verifyKey, true, 0)
resp.ERROR(c, "用户名或密码错误")
return
}
@@ -299,11 +303,13 @@ func (h *UserHandler) Login(c *gin.Context) {
return
}
// 保存到 redis
key := fmt.Sprintf("users/%d", user.Id)
if _, err := h.redis.Set(c, key, tokenString, 0).Result(); err != nil {
sessionKey := fmt.Sprintf("users/%d", user.Id)
if _, err = h.redis.Set(c, sessionKey, tokenString, 0).Result(); err != nil {
resp.ERROR(c, "error with save token: "+err.Error())
return
}
// 移除登录行为验证码
h.redis.Del(c, verifyKey)
resp.SUCCESS(c, gin.H{"token": tokenString, "user_id": user.Id, "username": user.Username})
}