diff --git a/fluxer_api/src/api/channel/tests/DMPrivacyBidirectional.test.ts b/fluxer_api/src/api/channel/tests/DMPrivacyBidirectional.test.ts index 49ae2e44e..e958046b4 100644 --- a/fluxer_api/src/api/channel/tests/DMPrivacyBidirectional.test.ts +++ b/fluxer_api/src/api/channel/tests/DMPrivacyBidirectional.test.ts @@ -62,6 +62,8 @@ describe('DM Privacy Bidirectional Enforcement', () => { const target = await createTestAccount(harness); await ensureSessionStarted(harness, sender.token); await ensureSessionStarted(harness, target.token); + await updateUserSettings(harness, sender.token, {default_guilds_restricted: false}); + await updateUserSettings(harness, target.token, {default_guilds_restricted: false}); const guild = await createGuild(harness, sender.token, 'Mutual Community'); const systemChannel = await getChannel(harness, sender.token, guild.system_channel_id!); const invite = await createChannelInvite(harness, sender.token, systemChannel.id); @@ -80,6 +82,8 @@ describe('DM Privacy Bidirectional Enforcement', () => { await ensureSessionStarted(harness, sender.token); await ensureSessionStarted(harness, target.token); await createFriendship(harness, sender, target); + await updateUserSettings(harness, sender.token, {default_guilds_restricted: false}); + await updateUserSettings(harness, target.token, {default_guilds_restricted: false}); const guild = await createGuild(harness, sender.token, 'Verified Community'); await createBuilder(harness, '') .post(`/test/guilds/${guild.id}/features`) @@ -97,6 +101,25 @@ describe('DM Privacy Bidirectional Enforcement', () => { .expect(HTTP_STATUS.OK) .execute(); }); + it('blocks message from a non-friend guild member to a new account by default', async () => { + const sender = await createTestAccount(harness); + const target = await createTestAccount(harness); + await ensureSessionStarted(harness, sender.token); + await ensureSessionStarted(harness, target.token); + await updateUserSettings(harness, sender.token, {default_guilds_restricted: false}); + await createFriendship(harness, sender, target); + const guild = await createGuild(harness, sender.token, 'Default Community'); + const systemChannel = await getChannel(harness, sender.token, guild.system_channel_id!); + const invite = await createChannelInvite(harness, sender.token, systemChannel.id); + await acceptInvite(harness, target.token, invite.code); + const channel = await createDmChannel(harness, sender.token, target.userId); + await removeRelationship(harness, sender.token, target.userId); + await createBuilder(harness, sender.token) + .post(`/channels/${channel.id}/messages`) + .body({content: 'default restricted target'}) + .expect(HTTP_STATUS.BAD_REQUEST, 'CANNOT_SEND_MESSAGES_TO_USER') + .execute(); + }); it('blocks message when sender restricts the only mutual guild', async () => { const sender = await createTestAccount(harness); const target = await createTestAccount(harness); @@ -175,6 +198,8 @@ describe('DM Privacy Bidirectional Enforcement', () => { const user2 = await createTestAccount(harness); await ensureSessionStarted(harness, user1.token); await ensureSessionStarted(harness, user2.token); + await updateUserSettings(harness, user1.token, {default_guilds_restricted: false}); + await updateUserSettings(harness, user2.token, {default_guilds_restricted: false}); const guild = await createGuild(harness, user1.token, 'Shared Community'); const systemChannel = await getChannel(harness, user1.token, guild.system_channel_id!); const invite = await createChannelInvite(harness, user1.token, systemChannel.id); diff --git a/fluxer_api/src/api/models/UserSettings.ts b/fluxer_api/src/api/models/UserSettings.ts index a657d9906..e22811423 100644 --- a/fluxer_api/src/api/models/UserSettings.ts +++ b/fluxer_api/src/api/models/UserSettings.ts @@ -216,7 +216,7 @@ export class UserSettings { friend_source_flags: friendSourceFlags, incoming_call_flags: IncomingCallFlags.FRIENDS_ONLY, group_dm_add_permission_flags: GroupDmAddPermissionFlags.FRIENDS_ONLY, - default_guilds_restricted: false, + default_guilds_restricted: true, bot_default_guilds_restricted: false, restricted_guilds: new Set(), bot_restricted_guilds: new Set(), diff --git a/fluxer_api/src/api/voice/tests/VoiceCallRinging.test.ts b/fluxer_api/src/api/voice/tests/VoiceCallRinging.test.ts index 3d3faedf2..cddd5a318 100644 --- a/fluxer_api/src/api/voice/tests/VoiceCallRinging.test.ts +++ b/fluxer_api/src/api/voice/tests/VoiceCallRinging.test.ts @@ -9,6 +9,7 @@ import { createGroupDmChannel, createGuild, getChannel, + updateUserSettings, } from '@app/api/channel/tests/ChannelTestUtils'; import {ensureSessionStarted} from '@app/api/message/tests/MessageTestUtils'; import {type ApiTestHarness, createApiTestHarness} from '@app/api/test/ApiTestHarness'; @@ -39,6 +40,8 @@ describe('Voice Call Ringing', () => { const user2 = await createTestAccount(harness); await ensureSessionStarted(harness, user1.token); await ensureSessionStarted(harness, user2.token); + await updateUserSettings(harness, user1.token, {default_guilds_restricted: false}); + await updateUserSettings(harness, user2.token, {default_guilds_restricted: false}); const guild = await createGuild(harness, user1.token, 'Mutual Guild'); const invite = await createChannelInvite(harness, user1.token, guild.system_channel_id!); await acceptInvite(harness, user2.token, invite.code);