Skip to content

Commit 6b7df2b

Browse files
authored
fix(backend): 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (MisskeyIO#606)
1 parent 22e398d commit 6b7df2b

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

packages/backend/src/server/api/endpoints/i/update-email.ts

+10
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import { DI } from '@/di-symbols.js';
1515
import { GlobalEventService } from '@/core/GlobalEventService.js';
1616
import { L_CHARS, secureRndstr } from '@/misc/secure-rndstr.js';
1717
import { UserAuthService } from '@/core/UserAuthService.js';
18+
import { MetaService } from '@/core/MetaService.js';
1819
import { ApiError } from '../../error.js';
1920

2021
export const meta = {
@@ -46,6 +47,12 @@ export const meta = {
4647
code: 'UNAVAILABLE',
4748
id: 'a2defefb-f220-8849-0af6-17f816099323',
4849
},
50+
51+
emailRequired: {
52+
message: 'Email address is required.',
53+
code: 'EMAIL_REQUIRED',
54+
id: '324c7a88-59f2-492f-903f-89134f93e47e',
55+
},
4956
},
5057

5158
res: {
@@ -73,6 +80,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
7380
@Inject(DI.userProfilesRepository)
7481
private userProfilesRepository: UserProfilesRepository,
7582

83+
private metaService: MetaService,
7684
private userEntityService: UserEntityService,
7785
private emailService: EmailService,
7886
private userAuthService: UserAuthService,
@@ -100,6 +108,8 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
100108
if (!res.available) {
101109
throw new ApiError(meta.errors.unavailable);
102110
}
111+
} else if ((await this.metaService.fetch()).emailRequiredForSignup) {
112+
throw new ApiError(meta.errors.emailRequired);
103113
}
104114

105115
await this.userProfilesRepository.update(me.id, {

0 commit comments

Comments
 (0)