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
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//修改用户资料后执行过期用户检测
|
||||||
|
sessdata.CloseUserLimittimeSession()
|
||||||
RespSucess(w, nil)
|
RespSucess(w, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,11 +67,11 @@ func CheckUserlimittime() []interface{} {
|
||||||
//初始化xorm时区
|
//初始化xorm时区
|
||||||
xdb.DatabaseTZ = time.Local
|
xdb.DatabaseTZ = time.Local
|
||||||
xdb.TZLocation = time.Local
|
xdb.TZLocation = time.Local
|
||||||
var user map[int64]User
|
|
||||||
var limitUser []interface{}
|
|
||||||
u := &User{Status: 2}
|
u := &User{Status: 2}
|
||||||
xdb.Where("limittime <= ?", time.Now()).And("status = ?", 1).Update(u)
|
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 {
|
for _, v := range user {
|
||||||
limitUser = append(limitUser, v.Username)
|
limitUser = append(limitUser, v.Username)
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,14 +117,10 @@ func checkSession() {
|
||||||
// 状态为过期的用户踢下线
|
// 状态为过期的用户踢下线
|
||||||
func CloseUserLimittimeSession() {
|
func CloseUserLimittimeSession() {
|
||||||
s := mapset.NewSetFromSlice(dbdata.CheckUserlimittime())
|
s := mapset.NewSetFromSlice(dbdata.CheckUserlimittime())
|
||||||
for k, v := range sessions {
|
for _, v := range sessions {
|
||||||
sessMux.Lock()
|
if v.IsActive && s.Contains(v.Username) {
|
||||||
v.mux.Lock()
|
CloseSess(v.Token)
|
||||||
if !v.IsActive && s.Contains(v.Username) {
|
|
||||||
delete(sessions, k)
|
|
||||||
}
|
}
|
||||||
v.mux.Unlock()
|
|
||||||
sessMux.Unlock()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,4 +4,5 @@ func Start() {
|
||||||
initIpPool()
|
initIpPool()
|
||||||
checkSession()
|
checkSession()
|
||||||
saveStatsInfo()
|
saveStatsInfo()
|
||||||
|
CloseUserLimittimeSession()
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue