From 7178673794d8a5c6b087a298d901e641b5628a6d Mon Sep 17 00:00:00 2001 From: NigeParis Date: Wed, 7 Jan 2026 18:24:07 +0100 Subject: [PATCH] WIP block guest messages --- src/@shared/src/database/mixin/user.ts | 6 +++++- src/chat/src/app.ts | 15 ++++++++++----- src/chat/src/chatBackHelperFunctions/broadcast.ts | 15 +++++++++++---- .../chatBackHelperFunctions/sendPrivMessage.ts | 5 +++++ 4 files changed, 31 insertions(+), 10 deletions(-) diff --git a/src/@shared/src/database/mixin/user.ts b/src/@shared/src/database/mixin/user.ts index 3b95546..dcd8dd4 100644 --- a/src/@shared/src/database/mixin/user.ts +++ b/src/@shared/src/database/mixin/user.ts @@ -209,7 +209,11 @@ export const UserImpl: Omit = { }, getGuestMessage(this: IUserDb, id: UserId): boolean | undefined { - return this.prepare('SELECT allow_guest_message FROM user WHERE id = @id').get({ id }) as boolean | undefined; + const result = this.prepare('SELECT allow_guest_message FROM user WHERE id = @id').get({ id }) as { + allow_guest_message: number + } | undefined + + return Boolean(result?.allow_guest_message) }, }; diff --git a/src/chat/src/app.ts b/src/chat/src/app.ts index 855fb47..66553cd 100644 --- a/src/chat/src/app.ts +++ b/src/chat/src/app.ts @@ -264,11 +264,16 @@ async function onReady(fastify: FastifyInstance) { if (!user) return; if (clientName !== null) { - if (profile.guestmsg) {console.log('Data TRUE:', clientName);} else {console.log('Data FALSE'); }; - - - if(fastify.db.getGuestMessage(user?.id)) {console.log('TRUE')}; - + if (profile.guestmsg) { + //console.log('Data TRUE:', clientName); + //console.log(user?.id); + fastify.db.allowGuestMessage(user?.id); + } + else + { + //console.log('Data FALSE', clientName); + fastify.db.denyGuestMessage(user?.id); + }; } }); diff --git a/src/chat/src/chatBackHelperFunctions/broadcast.ts b/src/chat/src/chatBackHelperFunctions/broadcast.ts index f9e1438..77bf0c4 100644 --- a/src/chat/src/chatBackHelperFunctions/broadcast.ts +++ b/src/chat/src/chatBackHelperFunctions/broadcast.ts @@ -8,8 +8,8 @@ import { whoBlockedMe } from './whoBlockedMe'; export async function broadcast(fastify: FastifyInstance, data: ClientMessage, sender?: string) { - const AllusersBlocked: User[] = fastify.db.getAllUsers() ?? []; - const UserID = getUserByName(AllusersBlocked, data.user)?.id ?? ''; + const Allusers: User[] = fastify.db.getAllUsers() ?? []; + const UserID = getUserByName(Allusers, data.user)?.id ?? ''; const list:BlockRelation[] = whoBlockedMe(fastify, UserID); const sockets = await fastify.io.fetchSockets(); for (const socket of sockets) { @@ -18,15 +18,22 @@ export async function broadcast(fastify: FastifyInstance, data: ClientMessage, s continue; } let blockMsgFlag: boolean = false; - const UserByID = getUserByName(AllusersBlocked, clientInfo.user)?.id ?? ''; + const UserByID = getUserByName(Allusers, clientInfo.user)?.id ?? ''; + const user: User | null = getUserByName(Allusers, clientInfo.user); + if (UserByID === '') return; blockMsgFlag = checkNamePair(list, data.SenderUserID, UserByID) || false; if (socket.id === sender) { continue; } + + if (!user?.id) return; + const boolGuestMsg = fastify.db.getGuestMessage(user?.id); + if (boolGuestMsg && user.guest) continue; if (!blockMsgFlag) { - socket.emit('MsgObjectServer', { message: data }); + + socket.emit('MsgObjectServer', { message: data }); if (data.SenderUserID) { fastify.log.info({ senderID: data.SenderUserID, msgBroadcast: data.text }); } diff --git a/src/chat/src/chatBackHelperFunctions/sendPrivMessage.ts b/src/chat/src/chatBackHelperFunctions/sendPrivMessage.ts index b0645da..6506bc0 100644 --- a/src/chat/src/chatBackHelperFunctions/sendPrivMessage.ts +++ b/src/chat/src/chatBackHelperFunctions/sendPrivMessage.ts @@ -58,6 +58,7 @@ export async function sendPrivMessage(fastify: FastifyInstance, data: ClientMess } let blockMsgFlag: boolean = false; const UserByID = getUserByName(allUsers, clientInfo.user) ?? ''; + const userfiche: User | null = getUserByName(allUsers, clientInfo.user); if (UserByID === '') { return; } @@ -72,6 +73,10 @@ export async function sendPrivMessage(fastify: FastifyInstance, data: ClientMess if (socket.id === sender) { continue; } + if (!userfiche?.id) return; + const boolGuestMsg = fastify.db.getGuestMessage(userfiche?.id); + if (!boolGuestMsg&& userfiche.guest) continue; + if (!blockMsgFlag) { socket.emit('MsgObjectServer', { message: data }); fastify.log.info({ senderID: `${UserID}`, msgPriv: data.text, target: `${UserByID.id}` });