fix: check user status when validating token (#23)
This commit is contained in:
parent
9272884381
commit
54b1e4adef
@ -98,6 +98,16 @@ func TokenAuth() func(c *gin.Context) {
|
|||||||
c.Abort()
|
c.Abort()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if !model.IsUserEnabled(token.UserId) {
|
||||||
|
c.JSON(http.StatusOK, gin.H{
|
||||||
|
"error": gin.H{
|
||||||
|
"message": "用户已被封禁",
|
||||||
|
"type": "one_api_error",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
c.Abort()
|
||||||
|
return
|
||||||
|
}
|
||||||
c.Set("id", token.UserId)
|
c.Set("id", token.UserId)
|
||||||
c.Set("token_id", token.Id)
|
c.Set("token_id", token.Id)
|
||||||
c.Set("unlimited_times", token.UnlimitedTimes)
|
c.Set("unlimited_times", token.UnlimitedTimes)
|
||||||
|
@ -195,6 +195,19 @@ func IsAdmin(userId int) bool {
|
|||||||
return user.Role >= common.RoleAdminUser
|
return user.Role >= common.RoleAdminUser
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func IsUserEnabled(userId int) bool {
|
||||||
|
if userId == 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
var user User
|
||||||
|
err := DB.Where("id = ?", userId).Select("status").Find(&user).Error
|
||||||
|
if err != nil {
|
||||||
|
common.SysError("No such user " + err.Error())
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return user.Status == common.UserStatusEnabled
|
||||||
|
}
|
||||||
|
|
||||||
func ValidateAccessToken(token string) (user *User) {
|
func ValidateAccessToken(token string) (user *User) {
|
||||||
if token == "" {
|
if token == "" {
|
||||||
return nil
|
return nil
|
||||||
|
Loading…
Reference in New Issue
Block a user