fix(discord): authorize stop actions explicitly
All checks were successful
ci/woodpecker/pr/ci Pipeline was successful

This commit is contained in:
Jarvis
2026-07-13 03:11:54 -05:00
parent bb43fb1b80
commit 6af68e76de

View File

@@ -688,7 +688,7 @@ export class ChatGateway implements OnGatewayInit, OnGatewayConnection, OnGatewa
@MessageBody() envelope: DiscordIngressEnvelope,
): Promise<void> {
if (!client.data.discordService) return;
const ingress = this.resolveDiscordIngress(client, envelope, 'approve');
const ingress = this.resolveDiscordIngress(client, envelope, 'stop');
const actionParts = ingress?.content.match(/^\/stop\s+([^\s]+)\s+([^\s]+)\s+([^\s]+)$/i);
const serviceUserId = process.env['DISCORD_SERVICE_USER_ID'];
if (!ingress || !actionParts || !serviceUserId || !this.runtimeRegistry) return;
@@ -697,7 +697,7 @@ export class ChatGateway implements OnGatewayInit, OnGatewayConnection, OnGatewa
ingress.guildId,
ingress.channelId,
ingress.userId,
'approve',
'stop',
);
if (!binding) return;
@@ -721,7 +721,7 @@ export class ChatGateway implements OnGatewayInit, OnGatewayConnection, OnGatewa
private resolveDiscordIngress(
client: Socket,
envelope: DiscordIngressEnvelope,
operation: 'send' | 'approve' = 'send',
operation: 'send' | 'approve' | 'stop' = 'send',
): DiscordIngressPayload | null {
const payload = verifyDiscordIngressEnvelope(
envelope,