summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/SignupService.ts
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2025-03-02 20:06:20 +0900
committerGitHub <noreply@github.com>2025-03-02 20:06:20 +0900
commit616cccf2511337fc181d0b6aa693b7091c7ba57b (patch)
treeb1971c2c9793628a9005bbc88883068e91fdb344 /packages/backend/src/core/SignupService.ts
parentUpdate CHANGELOG.md (diff)
downloadsharkey-616cccf2511337fc181d0b6aa693b7091c7ba57b.tar.gz
sharkey-616cccf2511337fc181d0b6aa693b7091c7ba57b.tar.bz2
sharkey-616cccf2511337fc181d0b6aa693b7091c7ba57b.zip
enhance(backend): refine system account (#15530)
* wip * wip * wip * Update SystemAccountService.ts * Update 1740121393164-system-accounts.js * Update DeleteAccountService.ts * wip * wip * wip * wip * Update 1740121393164-system-accounts.js * Update RepositoryModule.ts * wip * wip * wip * Update ApRendererService.ts * wip * wip * Update SystemAccountService.ts * fix tests * fix tests * fix tests * fix tests * fix tests * fix tests * add print logs * ログが長すぎて出てないかもしれない * fix migration * refactor * fix fed-tests * Update RelayService.ts * merge * Update user.test.ts * chore: emit log * fix: tweak sleep duration * fix: exit 1 * fix: wait for misskey processes to become healthy * fix: longer sleep for user deletion * fix: make sleep longer again * デッドロック解消の試み https://github.com/misskey-dev/misskey/issues/15005 * Revert "デッドロック解消の試み" This reverts commit 266141f66fb584371bbb56ef7eba04e14bcff94d. * wip * Update SystemAccountService.ts --------- Co-authored-by: おさむのひと <46447427+samunohito@users.noreply.github.com> Co-authored-by: zyoshoka <107108195+zyoshoka@users.noreply.github.com>
Diffstat (limited to 'packages/backend/src/core/SignupService.ts')
-rw-r--r--packages/backend/src/core/SignupService.ts15
1 files changed, 9 insertions, 6 deletions
diff --git a/packages/backend/src/core/SignupService.ts b/packages/backend/src/core/SignupService.ts
index d2f09ea15d..5462cb0b13 100644
--- a/packages/backend/src/core/SignupService.ts
+++ b/packages/backend/src/core/SignupService.ts
@@ -16,11 +16,12 @@ import { MiUserKeypair } from '@/models/UserKeypair.js';
import { MiUsedUsername } from '@/models/UsedUsername.js';
import { generateNativeUserToken } from '@/misc/token.js';
import { UserEntityService } from '@/core/entities/UserEntityService.js';
-import { InstanceActorService } from '@/core/InstanceActorService.js';
import { bindThis } from '@/decorators.js';
import UsersChart from '@/core/chart/charts/users.js';
import { UtilityService } from '@/core/UtilityService.js';
import { UserService } from '@/core/UserService.js';
+import { SystemAccountService } from '@/core/SystemAccountService.js';
+import { MetaService } from '@/core/MetaService.js';
@Injectable()
export class SignupService {
@@ -41,7 +42,8 @@ export class SignupService {
private userService: UserService,
private userEntityService: UserEntityService,
private idService: IdService,
- private instanceActorService: InstanceActorService,
+ private systemAccountService: SystemAccountService,
+ private metaService: MetaService,
private usersChart: UsersChart,
) {
}
@@ -86,9 +88,7 @@ export class SignupService {
throw new Error('USED_USERNAME');
}
- const isTheFirstUser = !await this.instanceActorService.realLocalUsersPresent();
-
- if (!opts.ignorePreservedUsernames && !isTheFirstUser) {
+ if (!opts.ignorePreservedUsernames && this.meta.rootUserId != null) {
const isPreserved = this.meta.preservedUsernames.map(x => x.toLowerCase()).includes(username.toLowerCase());
if (isPreserved) {
throw new Error('USED_USERNAME');
@@ -129,7 +129,6 @@ export class SignupService {
usernameLower: username.toLowerCase(),
host: this.utilityService.toPunyNullable(host),
token: secret,
- isRoot: isTheFirstUser,
}));
await transactionalEntityManager.save(new MiUserKeypair({
@@ -153,6 +152,10 @@ export class SignupService {
this.usersChart.update(account, true);
this.userService.notifySystemWebhook(account, 'userCreated');
+ if (this.meta.rootUserId == null) {
+ await this.metaService.update({ rootUserId: account.id });
+ }
+
return { account, secret };
}
}