mirror of https://github.com/bjdgyc/anylink.git
修复过期用户无法踢下线的问题,优化检测过期用户
This commit is contained in:
parent
3dbc369e6b
commit
b1890a2c8a
|
@ -107,7 +107,8 @@ func UserSet(w http.ResponseWriter, r *http.Request) {
|
|||
return
|
||||
}
|
||||
}
|
||||
|
||||
//修改用户资料后执行过期用户检测
|
||||
sessdata.CloseUserLimittimeSession()
|
||||
RespSucess(w, nil)
|
||||
}
|
||||
|
||||
|
|
|
@ -67,11 +67,11 @@ func CheckUserlimittime() []interface{} {
|
|||
//初始化xorm时区
|
||||
xdb.DatabaseTZ = time.Local
|
||||
xdb.TZLocation = time.Local
|
||||
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)
|
||||
user := make(map[int64]User)
|
||||
limitUser := make([]interface{}, 0)
|
||||
xdb.Where("status= ?", 2).Find(user)
|
||||
for _, v := range user {
|
||||
limitUser = append(limitUser, v.Username)
|
||||
}
|
||||
|
|
|
@ -117,14 +117,10 @@ func checkSession() {
|
|||
// 状态为过期的用户踢下线
|
||||
func CloseUserLimittimeSession() {
|
||||
s := mapset.NewSetFromSlice(dbdata.CheckUserlimittime())
|
||||
for k, v := range sessions {
|
||||
sessMux.Lock()
|
||||
v.mux.Lock()
|
||||
if !v.IsActive && s.Contains(v.Username) {
|
||||
delete(sessions, k)
|
||||
for _, v := range sessions {
|
||||
if v.IsActive && s.Contains(v.Username) {
|
||||
CloseSess(v.Token)
|
||||
}
|
||||
v.mux.Unlock()
|
||||
sessMux.Unlock()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -4,4 +4,5 @@ func Start() {
|
|||
initIpPool()
|
||||
checkSession()
|
||||
saveStatsInfo()
|
||||
CloseUserLimittimeSession()
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue