mirror of
https://github.com/fluxerapp/fluxer
synced 2026-10-07 19:22:14 +09:00
fix(api): stop treating users without a birth date as minors (#3040)
This commit is contained in:
@@ -78,7 +78,7 @@ import {
|
||||
mapUserToPrivateResponse,
|
||||
mapWebAuthnCredentialToResponse,
|
||||
} from '@app/api/user/UserMappers';
|
||||
import {isUserAdult} from '@app/api/utils/AgeUtils';
|
||||
import {canUserAccessNsfwContent} from '@app/api/utils/AgeUtils';
|
||||
import {deriveDominantAvatarColor} from '@app/api/utils/AvatarColorUtils';
|
||||
import {calculateDistance, parseCoordinate} from '@app/api/utils/GeoUtils';
|
||||
import {lookupGeoip} from '@app/api/utils/IpUtils';
|
||||
@@ -1564,7 +1564,7 @@ export class RpcService {
|
||||
const needsIncomingCallRepair = settings.incomingCallFlags === 0;
|
||||
const needsGroupDmRepair = settings.groupDmAddPermissionFlags === 0;
|
||||
if (needsIncomingCallRepair || needsGroupDmRepair) {
|
||||
const isAdult = isUserAdult(user.dateOfBirth);
|
||||
const isAdult = canUserAccessNsfwContent({isBot: false, dateOfBirth: user.dateOfBirth});
|
||||
const updatedRow = {
|
||||
...settings.toRow(),
|
||||
...(needsIncomingCallRepair && {
|
||||
|
||||
@@ -25,7 +25,7 @@ import type {UserAccountUpdatePropagator} from '@app/api/user/services/UserAccou
|
||||
import {getCachedUserPartialResponse} from '@app/api/user/UserCacheHelpers';
|
||||
import {mapRelationshipToResponse} from '@app/api/user/UserMappers';
|
||||
import {dedupeGuildFolders} from '@app/api/user/utils/GuildFolderUtils';
|
||||
import {isUserAdult} from '@app/api/utils/AgeUtils';
|
||||
import {canUserAccessNsfwContent} from '@app/api/utils/AgeUtils';
|
||||
import {
|
||||
DEFAULT_GUILD_FOLDER_ICON,
|
||||
GroupDmAddPermissionFlags,
|
||||
@@ -200,7 +200,7 @@ export class UserAccountSettingsService {
|
||||
if (data.default_hide_muted_channels !== undefined) {
|
||||
updatedRowData.default_hide_muted_channels = data.default_hide_muted_channels;
|
||||
}
|
||||
const userIsAdult = isUserAdult(dateOfBirth);
|
||||
const userIsAdult = canUserAccessNsfwContent({isBot: false, dateOfBirth});
|
||||
if (userIsAdult) {
|
||||
if (data.sensitive_content_friend_dm_filter !== undefined) {
|
||||
updatedRowData.sensitive_content_friend_dm_filter = data.sensitive_content_friend_dm_filter;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
|
||||
import {createTestAccount} from '@app/api/auth/tests/AuthTestUtils';
|
||||
import {getInstanceConfigRepository} from '@app/api/middleware/ServiceSingletons';
|
||||
import {type ApiTestHarness, createApiTestHarness} from '@app/api/test/ApiTestHarness';
|
||||
import {HTTP_STATUS} from '@app/api/test/TestConstants';
|
||||
import {createBuilder} from '@app/api/test/TestRequestBuilder';
|
||||
@@ -99,6 +100,24 @@ describe('User Settings - Sensitive Content Filters', () => {
|
||||
expect(response.errors[0]?.path).toBe('sensitive_content_friend_dm_filter');
|
||||
expect(response.errors[0]?.code).toBe(ValidationErrorCodes.AGE_RESTRICTED);
|
||||
});
|
||||
test('allows an account without a birth date to relax every filter when none is collected', async () => {
|
||||
const repository = getInstanceConfigRepository();
|
||||
const previous = (await repository.getAppPublicConfig()).registration.collect_date_of_birth;
|
||||
await repository.setAppPublicConfig({registration: {collect_date_of_birth: false}});
|
||||
try {
|
||||
const account = await createTestAccount(harness);
|
||||
const {json} = await updateUserSettings(harness, account.token, {
|
||||
sensitive_content_friend_dm_filter: SensitiveMediaFilterLevel.SHOW,
|
||||
sensitive_content_non_friend_dm_filter: SensitiveMediaFilterLevel.SHOW,
|
||||
sensitive_content_guild_filter: SensitiveMediaFilterLevel.SHOW,
|
||||
});
|
||||
expect(json.sensitive_content_friend_dm_filter).toBe(SensitiveMediaFilterLevel.SHOW);
|
||||
expect(json.sensitive_content_non_friend_dm_filter).toBe(SensitiveMediaFilterLevel.SHOW);
|
||||
expect(json.sensitive_content_guild_filter).toBe(SensitiveMediaFilterLevel.SHOW);
|
||||
} finally {
|
||||
await repository.setAppPublicConfig({registration: {collect_date_of_birth: previous}});
|
||||
}
|
||||
});
|
||||
test('rejects negative value', async () => {
|
||||
const account = await createTestAccount(harness);
|
||||
await createBuilder(harness, account.token)
|
||||
|
||||
Reference in New Issue
Block a user