fix: kick realtime sessions on admin account ban
This commit is contained in:
parent
04097e530e
commit
bbc4a267be
@ -69,6 +69,7 @@ public class UserDataViolationServiceImpl implements UserDataViolationService {
|
|||||||
}*/
|
}*/
|
||||||
|
|
||||||
public void processUpdateAccountStatus(ApprovalAccountCmd param) {
|
public void processUpdateAccountStatus(ApprovalAccountCmd param) {
|
||||||
|
boolean realtimeKicked = false;
|
||||||
|
|
||||||
// 警告
|
// 警告
|
||||||
if (ConsoleAccountStatusEnum.WARNING.eq(param.getAccountStatusEnum())) {
|
if (ConsoleAccountStatusEnum.WARNING.eq(param.getAccountStatusEnum())) {
|
||||||
@ -112,8 +113,8 @@ public class UserDataViolationServiceImpl implements UserDataViolationService {
|
|||||||
redisService
|
redisService
|
||||||
.delete(SecurityConstant.getAccessTokenCacheKeyMd5(param.getBeApprovalUserId()));
|
.delete(SecurityConstant.getAccessTokenCacheKeyMd5(param.getBeApprovalUserId()));
|
||||||
|
|
||||||
imAccountClient.kick(param.getBeApprovalUserId());
|
kickUserAndRemoveAuthToken(param.getBeApprovalUserId());
|
||||||
authClient.removeToken(param.getBeApprovalUserId());
|
realtimeKicked = true;
|
||||||
}
|
}
|
||||||
// 封禁+设备
|
// 封禁+设备
|
||||||
else if (ConsoleAccountStatusEnum.ARCHIVE_DEVICE.eq(param.getAccountStatusEnum())) {
|
else if (ConsoleAccountStatusEnum.ARCHIVE_DEVICE.eq(param.getAccountStatusEnum())) {
|
||||||
@ -137,8 +138,7 @@ public class UserDataViolationServiceImpl implements UserDataViolationService {
|
|||||||
redisService
|
redisService
|
||||||
.delete(SecurityConstant.getAccessTokenCacheKeyMd5(relationUser.getUserId()));
|
.delete(SecurityConstant.getAccessTokenCacheKeyMd5(relationUser.getUserId()));
|
||||||
|
|
||||||
imAccountClient.kick(relationUser.getUserId());
|
kickUserAndRemoveAuthToken(relationUser.getUserId());
|
||||||
authClient.removeToken(relationUser.getUserId());
|
|
||||||
ResponseAssert.requiredSuccess(newsletterClient.send(
|
ResponseAssert.requiredSuccess(newsletterClient.send(
|
||||||
new NewsletterResultCmd()
|
new NewsletterResultCmd()
|
||||||
.setUserIds(List.of(relationUser.getUserId()))
|
.setUserIds(List.of(relationUser.getUserId()))
|
||||||
@ -215,7 +215,9 @@ public class UserDataViolationServiceImpl implements UserDataViolationService {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
removeTrtcRoom(param);
|
if (!realtimeKicked) {
|
||||||
|
removeTrtcRoom(param.getBeApprovalUserId());
|
||||||
|
}
|
||||||
|
|
||||||
addLog(param, param.getBeApprovalUserId());
|
addLog(param, param.getBeApprovalUserId());
|
||||||
|
|
||||||
@ -223,9 +225,15 @@ public class UserDataViolationServiceImpl implements UserDataViolationService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeTrtcRoom(ApprovalAccountCmd param) {
|
private void kickUserAndRemoveAuthToken(Long userId) {
|
||||||
|
imAccountClient.kick(userId);
|
||||||
|
authClient.removeToken(userId);
|
||||||
|
removeTrtcRoom(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void removeTrtcRoom(Long userId) {
|
||||||
String sessionId = ResponseAssert.requiredSuccess(
|
String sessionId = ResponseAssert.requiredSuccess(
|
||||||
userOnlineClient.getSessionId(param.getBeApprovalUserId()));
|
userOnlineClient.getSessionId(userId));
|
||||||
if (Objects.nonNull(sessionId)) {
|
if (Objects.nonNull(sessionId)) {
|
||||||
RoomProfileDTO roomProfile = ResponseAssert.requiredSuccess(
|
RoomProfileDTO roomProfile = ResponseAssert.requiredSuccess(
|
||||||
roomManagerClient.getProfileById(Long.valueOf(sessionId)));
|
roomManagerClient.getProfileById(Long.valueOf(sessionId)));
|
||||||
@ -233,7 +241,7 @@ public class UserDataViolationServiceImpl implements UserDataViolationService {
|
|||||||
trtcClient.removeUser(
|
trtcClient.removeUser(
|
||||||
new TrtcRemoveUserCmd()
|
new TrtcRemoveUserCmd()
|
||||||
.setRoomId(Long.parseLong(roomProfile.getRoomAccount()))
|
.setRoomId(Long.parseLong(roomProfile.getRoomAccount()))
|
||||||
.setUserIds(List.of(param.getBeApprovalUserId()))
|
.setUserIds(List.of(userId))
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user