parent
3a73f2c3de
commit
688deda218
3 changed files with 14 additions and 21 deletions
|
@ -1,7 +1,7 @@
|
|||
import { IsNull } from 'typeorm';
|
||||
import { ILocalUser } from '@/models/entities/user.js';
|
||||
import { Users } from '@/models/index.js';
|
||||
import { createSystemUser } from './create-system-user.js';
|
||||
import { getSystemUser } from './system-user.js';
|
||||
|
||||
const ACTOR_USERNAME = 'instance.actor' as const;
|
||||
|
||||
|
@ -12,7 +12,7 @@ let instanceActor = await Users.findOneBy({
|
|||
|
||||
export async function getInstanceActor(): Promise<ILocalUser> {
|
||||
if (!instanceActor) {
|
||||
instanceActor = await createSystemUser(ACTOR_USERNAME) as ILocalUser;
|
||||
instanceActor = await getSystemUser(ACTOR_USERNAME) as ILocalUser;
|
||||
}
|
||||
|
||||
return instanceActor;
|
||||
|
|
|
@ -9,7 +9,7 @@ import { genId } from '@/misc/gen-id.js';
|
|||
import { Cache } from '@/misc/cache.js';
|
||||
import { Relay } from '@/models/entities/relay.js';
|
||||
import { MINUTE } from '@/const.js';
|
||||
import { createSystemUser } from './create-system-user.js';
|
||||
import { getSystemUser } from './system-user.js';
|
||||
|
||||
const ACTOR_USERNAME = 'relay.actor' as const;
|
||||
|
||||
|
@ -24,16 +24,8 @@ const relaysCache = new Cache<Relay[]>(
|
|||
}),
|
||||
);
|
||||
|
||||
export async function getRelayActor(): Promise<ILocalUser> {
|
||||
const user = await Users.findOneBy({
|
||||
host: IsNull(),
|
||||
username: ACTOR_USERNAME,
|
||||
});
|
||||
|
||||
if (user) return user as ILocalUser;
|
||||
|
||||
const created = await createSystemUser(ACTOR_USERNAME);
|
||||
return created as ILocalUser;
|
||||
async function getRelayActor(): Promise<ILocalUser> {
|
||||
return await getSystemUser(ACTOR_USERNAME);
|
||||
}
|
||||
|
||||
export async function addRelay(inbox: string): Promise<Relay> {
|
||||
|
|
|
@ -2,6 +2,7 @@ import { v4 as uuid } from 'uuid';
|
|||
import { IsNull } from 'typeorm';
|
||||
import { genRsaKeyPair } from '@/misc/gen-key-pair.js';
|
||||
import { hashPassword } from '@/misc/password.js';
|
||||
import { Users } from '@/models/index.js';
|
||||
import { User } from '@/models/entities/user.js';
|
||||
import { UserProfile } from '@/models/entities/user-profile.js';
|
||||
import { genId } from '@/misc/gen-id.js';
|
||||
|
@ -10,7 +11,14 @@ import { UsedUsername } from '@/models/entities/used-username.js';
|
|||
import { db } from '@/db/postgre.js';
|
||||
import generateNativeUserToken from '@/server/api/common/generate-native-user-token.js';
|
||||
|
||||
export async function createSystemUser(username: string): Promise<User> {
|
||||
export async function getSystemUser(username: string): Promise<User> {
|
||||
const exist = await Users.findBy({
|
||||
usernameLower: username.toLowerCase(),
|
||||
host: IsNull(),
|
||||
});
|
||||
|
||||
if (exist) return exist;
|
||||
|
||||
const password = await hashPassword(uuid());
|
||||
|
||||
// Generate secret
|
||||
|
@ -22,13 +30,6 @@ export async function createSystemUser(username: string): Promise<User> {
|
|||
|
||||
// Start transaction
|
||||
await db.transaction(async transactionalEntityManager => {
|
||||
const exist = await transactionalEntityManager.countBy(User, {
|
||||
usernameLower: username.toLowerCase(),
|
||||
host: IsNull(),
|
||||
});
|
||||
|
||||
if (exist) throw new Error('the user is already exists');
|
||||
|
||||
account = await transactionalEntityManager.insert(User, {
|
||||
id: genId(),
|
||||
createdAt: new Date(),
|
Loading…
Reference in a new issue