mirror of
https://github.com/openimsdk/open-im-server.git
synced 2025-10-27 05:52:29 +08:00
fix: del login Policy
This commit is contained in:
parent
c5deadd0a9
commit
3e2a31a197
@ -327,11 +327,6 @@ func (ws *WsServer) multiTerminalLoginChecker(clientOK bool, oldClients []*Clien
|
|||||||
|
|
||||||
switch ws.msgGatewayConfig.Share.MultiLogin.Policy {
|
switch ws.msgGatewayConfig.Share.MultiLogin.Policy {
|
||||||
case constant.DefalutNotKick:
|
case constant.DefalutNotKick:
|
||||||
case constant.WebAndOther:
|
|
||||||
if constant.PlatformIDToClass(newClient.PlatformID) == constant.WebPlatformStr {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
fallthrough
|
|
||||||
case constant.PCAndOther:
|
case constant.PCAndOther:
|
||||||
if constant.PlatformIDToClass(newClient.PlatformID) == constant.TerminalPC {
|
if constant.PlatformIDToClass(newClient.PlatformID) == constant.TerminalPC {
|
||||||
return
|
return
|
||||||
@ -370,21 +365,6 @@ func (ws *WsServer) multiTerminalLoginChecker(clientOK bool, oldClients []*Clien
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
kickTokenFunc(kickClients)
|
kickTokenFunc(kickClients)
|
||||||
|
|
||||||
case constant.SingleTerminalLogin:
|
|
||||||
clients, ok := ws.clients.GetAll(newClient.UserID)
|
|
||||||
if !ok {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
var (
|
|
||||||
kickClients []*Client
|
|
||||||
)
|
|
||||||
for _, client := range clients {
|
|
||||||
kickClients = append(kickClients, client)
|
|
||||||
}
|
|
||||||
kickTokenFunc(kickClients)
|
|
||||||
case constant.Customize:
|
|
||||||
// todo
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -172,17 +172,8 @@ func (a *authDatabase) checkToken(ctx context.Context, tokens map[int]map[string
|
|||||||
kickToken = append(kickToken, ts[len(ts)-1])
|
kickToken = append(kickToken, ts[len(ts)-1])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case constant.SingleTerminalLogin:
|
|
||||||
for _, ts := range loginTokenMap {
|
|
||||||
kickToken = append(kickToken, ts...)
|
|
||||||
}
|
|
||||||
case constant.WebAndOther:
|
|
||||||
unkickTerminal = constant.WebPlatformStr
|
|
||||||
fallthrough
|
|
||||||
case constant.PCAndOther:
|
case constant.PCAndOther:
|
||||||
if unkickTerminal == "" {
|
|
||||||
unkickTerminal = constant.TerminalPC
|
unkickTerminal = constant.TerminalPC
|
||||||
}
|
|
||||||
if constant.PlatformIDToClass(platformID) != unkickTerminal {
|
if constant.PlatformIDToClass(platformID) != unkickTerminal {
|
||||||
for plt, ts := range loginTokenMap {
|
for plt, ts := range loginTokenMap {
|
||||||
if constant.PlatformIDToClass(plt) != unkickTerminal {
|
if constant.PlatformIDToClass(plt) != unkickTerminal {
|
||||||
@ -232,22 +223,6 @@ func (a *authDatabase) checkToken(ctx context.Context, tokens map[int]map[string
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
case constant.Customize:
|
|
||||||
if a.multiLogin.CustomizeLoginNum[platformID] <= 0 {
|
|
||||||
return nil, nil, errs.New("Do not allow login on this end").Wrap()
|
|
||||||
}
|
|
||||||
for plt, ts := range loginTokenMap {
|
|
||||||
l := len(ts)
|
|
||||||
if platformID == plt {
|
|
||||||
l++
|
|
||||||
}
|
|
||||||
// a.multiLogin.CustomizeLoginNum[platformID] must > 0
|
|
||||||
limit := min(a.multiLogin.CustomizeLoginNum[plt], a.multiLogin.MaxNumOneEnd)
|
|
||||||
if l > limit {
|
|
||||||
kickToken = append(kickToken, ts[:l-limit]...)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
return nil, nil, errs.New("unknown multiLogin policy").Wrap()
|
return nil, nil, errs.New("unknown multiLogin policy").Wrap()
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user