浏览代码

fix: a few issues with banning a user loading to backend issues, a persistant reconnect, and a useless toast

Kristian Vos 1 年之前
父节点
当前提交
1d7c7f7320
共有 3 个文件被更改,包括 12 次插入4 次删除
  1. 3 1
      backend/logic/ws.js
  2. 4 1
      frontend/src/App.vue
  3. 5 2
      frontend/src/ws.ts

+ 3 - 1
backend/logic/ws.js

@@ -561,10 +561,12 @@ class _WSModule extends CoreClass {
 					`A user tried to connect, but is currently banned. IP: ${socket.ip}.${sessionInfo}`
 				);
 
-				socket.dispatch("keep.event:banned", { data: { ban: socket.banishment.ban } });
+				socket.dispatch("keep.event:user.banned", { data: { ban: socket.banishment.ban } });
 
 				socket.close(); // close socket connection
 
+				resolve();
+
 				return;
 			}
 

+ 4 - 1
frontend/src/App.vue

@@ -82,9 +82,12 @@ const enableChristmasMode = () => {
 };
 
 watch(socketConnected, connected => {
-	if (!connected) disconnectedMessage.value.show();
+	if (!connected && !userAuthStore.banned) disconnectedMessage.value.show();
 	else disconnectedMessage.value.hide();
 });
+watch(banned, () => {
+	disconnectedMessage.value.hide();
+});
 watch(nightmode, enabled => {
 	if (enabled) enableNightmode();
 	else disableNightmode();

+ 5 - 2
frontend/src/ws.ts

@@ -1,4 +1,5 @@
 import { useWebsocketsStore } from "@/stores/websockets";
+import { useUserAuthStore } from "@/stores/userAuth";
 import ListenerHandler from "./classes/ListenerHandler.class";
 
 const onConnect = [];
@@ -72,6 +73,8 @@ export default {
 	},
 
 	init(url) {
+		const userAuthStore = useUserAuthStore();
+
 		// ensures correct context of socket object when dispatching (because socket object is recreated on reconnection)
 		const waitForConnectionToDispatch = (...args) =>
 			this.socket.dispatch(...args);
@@ -164,8 +167,8 @@ export default {
 			onDisconnect.temp.forEach(cb => cb());
 			onDisconnect.persist.forEach(cb => cb());
 
-			// try to reconnect every 1000ms
-			setTimeout(() => this.init(url), 1000);
+			// try to reconnect every 1000ms, if the user isn't banned
+			if (!userAuthStore.banned) setTimeout(() => this.init(url), 1000);
 		};
 
 		this.socket.onerror = err => {