mirror of
https://iceshrimp.dev/crimekillz/iceshrimp-161sh.git
synced 2024-11-22 12:13:48 +01:00
Fix: Duplicate system users are created (#7141)
This commit is contained in:
parent
08a2f887d2
commit
959bf87683
@ -25,7 +25,14 @@ export async function createSystemUser(username: string) {
|
||||
|
||||
// Start transaction
|
||||
await getConnection().transaction(async transactionalEntityManager => {
|
||||
account = await transactionalEntityManager.save(new User({
|
||||
const exist = await transactionalEntityManager.findOne(User, {
|
||||
usernameLower: username.toLowerCase(),
|
||||
host: null
|
||||
});
|
||||
|
||||
if (exist) throw new Error('the user is already exists');
|
||||
|
||||
account = await transactionalEntityManager.insert(User, {
|
||||
id: genId(),
|
||||
createdAt: new Date(),
|
||||
username: username,
|
||||
@ -36,24 +43,24 @@ export async function createSystemUser(username: string) {
|
||||
isLocked: true,
|
||||
isExplorable: false,
|
||||
isBot: true,
|
||||
}));
|
||||
}).then(x => transactionalEntityManager.findOneOrFail(User, x.identifiers[0]));
|
||||
|
||||
await transactionalEntityManager.save(new UserKeypair({
|
||||
await transactionalEntityManager.insert(UserKeypair, {
|
||||
publicKey: keyPair.publicKey,
|
||||
privateKey: keyPair.privateKey,
|
||||
userId: account.id
|
||||
}));
|
||||
});
|
||||
|
||||
await transactionalEntityManager.save(new UserProfile({
|
||||
await transactionalEntityManager.insert(UserProfile, {
|
||||
userId: account.id,
|
||||
autoAcceptFollowed: false,
|
||||
password: hash,
|
||||
}));
|
||||
});
|
||||
|
||||
await transactionalEntityManager.save(new UsedUsername({
|
||||
await transactionalEntityManager.insert(UsedUsername, {
|
||||
createdAt: new Date(),
|
||||
username: username.toLowerCase(),
|
||||
}));
|
||||
});
|
||||
});
|
||||
|
||||
return account;
|
||||
|
Loading…
Reference in New Issue
Block a user