This commit is contained in:
tamaina 2023-05-02 10:26:18 +00:00
parent b3ec47c3f4
commit f3e43a0fc6
2 changed files with 5 additions and 6 deletions

View file

@ -80,14 +80,16 @@ export class SignupService {
throw new Error('USED_USERNAME');
}
if (!opts.ignorePreservedUsernames) {
const isTheFirstUser = (await this.usersRepository.countBy({ host: IsNull() })) === 0;
if (!opts.ignorePreservedUsernames || !isTheFirstUser) {
const instance = await this.metaService.fetch(true);
const isPreserved = instance.preservedUsernames.map(x => x.toLowerCase()).includes(username.toLowerCase());
if (isPreserved) {
throw new Error('USED_USERNAME');
}
}
const keyPair = await new Promise<string[]>((res, rej) =>
generateKeyPair('rsa', {
modulusLength: 4096,
@ -123,9 +125,7 @@ export class SignupService {
usernameLower: username.toLowerCase(),
host: this.utilityService.toPunyNullable(host),
token: secret,
isRoot: (await this.usersRepository.countBy({
host: IsNull(),
})) === 0,
isRoot: isTheFirstUser,
}));
await transactionalEntityManager.save(new UserKeypair({

View file

@ -169,7 +169,6 @@ export class SignupApiService {
try {
const { account, secret } = await this.signupService.signup({
username, password, host,
ignorePreservedUsernames: (await this.usersRepository.countBy({ host: IsNull() })) === 0,
});
const res = await this.userEntityService.pack(account, account, {