Skip to content

Commit

Permalink
fix(backend): 登録にメール認証が必須になっている場合、登録されているメールアドレスを削除できないように (#606)
Browse files Browse the repository at this point in the history
  • Loading branch information
u1-liquid authored Apr 13, 2024
1 parent 22e398d commit 6b7df2b
Showing 1 changed file with 10 additions and 0 deletions.
10 changes: 10 additions & 0 deletions packages/backend/src/server/api/endpoints/i/update-email.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ import { DI } from '@/di-symbols.js';
import { GlobalEventService } from '@/core/GlobalEventService.js';
import { L_CHARS, secureRndstr } from '@/misc/secure-rndstr.js';
import { UserAuthService } from '@/core/UserAuthService.js';
import { MetaService } from '@/core/MetaService.js';
import { ApiError } from '../../error.js';

export const meta = {
Expand Down Expand Up @@ -46,6 +47,12 @@ export const meta = {
code: 'UNAVAILABLE',
id: 'a2defefb-f220-8849-0af6-17f816099323',
},

emailRequired: {
message: 'Email address is required.',
code: 'EMAIL_REQUIRED',
id: '324c7a88-59f2-492f-903f-89134f93e47e',
},
},

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

private metaService: MetaService,
private userEntityService: UserEntityService,
private emailService: EmailService,
private userAuthService: UserAuthService,
Expand Down Expand Up @@ -100,6 +108,8 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
if (!res.available) {
throw new ApiError(meta.errors.unavailable);
}
} else if ((await this.metaService.fetch()).emailRequiredForSignup) {
throw new ApiError(meta.errors.emailRequired);
}

await this.userProfilesRepository.update(me.id, {
Expand Down

0 comments on commit 6b7df2b

Please sign in to comment.