mirror of
https://github.com/bjdgyc/anylink.git
synced 2025-08-08 14:04:16 +08:00
新增本地用户设置过期时间
This commit is contained in:
@@ -3,6 +3,7 @@ package dbdata
|
||||
import (
|
||||
"errors"
|
||||
"reflect"
|
||||
"time"
|
||||
|
||||
"xorm.io/xorm"
|
||||
)
|
||||
@@ -61,6 +62,19 @@ func One(fieldName string, value interface{}, data interface{}) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 用户过期时间到达后,更新用户状态,并返回一个状态为过期的用户切片
|
||||
func CheckUserlimittime() []interface{} {
|
||||
var user map[int64]User
|
||||
var limitUser []interface{}
|
||||
u := &User{Status: 2}
|
||||
xdb.Where("limittime < ?", time.Now()).And("status = ?", 1).Update(u)
|
||||
xdb.Where("status= ?", 2).Find(u)
|
||||
for _, v := range user {
|
||||
limitUser = append(limitUser, v.Username)
|
||||
}
|
||||
return limitUser
|
||||
}
|
||||
|
||||
func CountAll(data interface{}) int {
|
||||
n, _ := xdb.Count(data)
|
||||
return int(n)
|
||||
|
@@ -30,6 +30,7 @@ type User struct {
|
||||
Email string `json:"email" xorm:"varchar(255)"`
|
||||
// Password string `json:"password"`
|
||||
PinCode string `json:"pin_code" xorm:"varchar(32)"`
|
||||
LimitTime time.Time `json:"limittime" xorm:"Datetime limittime"`
|
||||
OtpSecret string `json:"otp_secret" xorm:"varchar(255)"`
|
||||
DisableOtp bool `json:"disable_otp" xorm:"Bool"` // 禁用otp
|
||||
Groups []string `json:"groups" xorm:"Text"`
|
||||
|
@@ -104,7 +104,12 @@ func checkLocalUser(name, pwd, group string) error {
|
||||
v := &User{}
|
||||
err := One("Username", name, v)
|
||||
if err != nil || v.Status != 1 {
|
||||
return fmt.Errorf("%s %s", name, "用户名错误")
|
||||
switch v.Status {
|
||||
case 0:
|
||||
return fmt.Errorf("%s %s", name, "用户不存在或用户已停用")
|
||||
case 2:
|
||||
return fmt.Errorf("%s %s", name, "用户已过期")
|
||||
}
|
||||
}
|
||||
// 判断用户组信息
|
||||
if !utils.InArrStr(v.Groups, group) {
|
||||
|
Reference in New Issue
Block a user