From 97ebd47bce4d313d780b8ea54a81c35fa45225ea Mon Sep 17 00:00:00 2001 From: dennisrijsdijk Date: Fri, 18 Oct 2024 09:38:33 +0200 Subject: [PATCH 1/2] fix(moderation): lowercase and displayName check for url moderation (#2862) --- src/backend/chat/moderation/chat-moderation-manager.js | 7 ++++++- src/backend/chat/moderation/url-permit-command.ts | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/backend/chat/moderation/chat-moderation-manager.js b/src/backend/chat/moderation/chat-moderation-manager.js index be2bb9715..0fccc986b 100644 --- a/src/backend/chat/moderation/chat-moderation-manager.js +++ b/src/backend/chat/moderation/chat-moderation-manager.js @@ -204,7 +204,12 @@ async function moderateMessage(chatMessage) { } const userExemptForUrlModeration = rolesManager.userIsInRole(chatMessage.userId, chatMessage.roles, chatModerationSettings.urlModeration.exemptRoles); - if (chatModerationSettings.urlModeration.enabled && !userExemptForUrlModeration && !permitCommand.hasTemporaryPermission(chatMessage.username)) { + if ( + chatModerationSettings.urlModeration.enabled && + !userExemptForUrlModeration && + !permitCommand.hasTemporaryPermission(chatMessage.username) && + !permitCommand.hasTemporaryPermission(chatMessage.userDisplayName.toLowerCase()) + ) { let shouldDeleteMessage = false; const message = chatMessage.rawText; const regex = utils.getUrlRegex(); diff --git a/src/backend/chat/moderation/url-permit-command.ts b/src/backend/chat/moderation/url-permit-command.ts index 077cb1452..862a5de74 100644 --- a/src/backend/chat/moderation/url-permit-command.ts +++ b/src/backend/chat/moderation/url-permit-command.ts @@ -65,7 +65,7 @@ class PermitManager { return; } - const target = args[0].replace("@", ""); + const target = args[0].replace("@", "").toLowerCase(); if (!target) { await twitchChat.sendChatMessage("Please specify a user to permit."); return; From c9110e1332904d1daacc6d731c51e6f19ce49290 Mon Sep 17 00:00:00 2001 From: dennisrijsdijk Date: Fri, 18 Oct 2024 09:53:27 +0200 Subject: [PATCH 2/2] chore: don't normalize username for chat message --- src/backend/chat/moderation/url-permit-command.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/backend/chat/moderation/url-permit-command.ts b/src/backend/chat/moderation/url-permit-command.ts index 862a5de74..272774658 100644 --- a/src/backend/chat/moderation/url-permit-command.ts +++ b/src/backend/chat/moderation/url-permit-command.ts @@ -65,13 +65,14 @@ class PermitManager { return; } - const target = args[0].replace("@", "").toLowerCase(); + const target = args[0].replace("@", ""); + const normalizedTarget = target.toLowerCase(); if (!target) { await twitchChat.sendChatMessage("Please specify a user to permit."); return; } - this._tempPermittedUsers.push(target); + this._tempPermittedUsers.push(normalizedTarget); logger.debug(`URL moderation: ${target} has been temporary permitted to post a URL.`); const message = commandOptions.permitDisplayTemplate.replace("{target}", target).replace("{duration}", commandOptions.permitDuration.toString()); @@ -81,7 +82,7 @@ class PermitManager { } setTimeout(() => { - this._tempPermittedUsers = this._tempPermittedUsers.filter(user => user !== target); + this._tempPermittedUsers = this._tempPermittedUsers.filter(user => user !== normalizedTarget); logger.debug(`URL moderation: Temporary URL permission for ${target} expired.`); }, commandOptions.permitDuration * 1000); }