Fix updating host on updatePerson

This commit is contained in:
Laura Hausmann 2023-09-10 18:54:02 +02:00
parent a2fbf57769
commit 558b58a0cd
No known key found for this signature in database
GPG key ID: D044E84C5BE01605

View file

@ -187,25 +187,28 @@ export async function createPerson(
const host = subjectHost ?? await getSubjectHostFromUri(object.id) ?? toPuny(new URL(object.id).hostname); const host = subjectHost ?? await getSubjectHostFromUri(object.id) ?? toPuny(new URL(object.id).hostname);
const usernameLower = person.preferredUsername?.toLowerCase();
if (usernameLower !== null) {
let checkUser = (await Users.findOneBy({ let checkUser = (await Users.findOneBy({
usernameLower: person.preferredUsername!.toLowerCase(), usernameLower: usernameLower,
host: toPuny(new URL(object.id).hostname), host: toPuny(new URL(object.id).hostname),
})) as IRemoteUser | null; })) as IRemoteUser | null;
if (checkUser != null) { if (checkUser != null) {
logger.info('Person already exists'); logger.info('Person already exists');
if (host != checkUser.host) { if (host != checkUser.host) {
logger.info('Updating existing person with canonical account domain'); logger.info(`Updating existing person with canonical account domain (${usernameLower}@${checkUser.host} -> ${usernameLower}@${host})`);
checkUser.host = host;
await Users.update( await Users.update(
{ {
usernameLower: checkUser.usernameLower, usernameLower: usernameLower,
host: checkUser.host, host: checkUser.host,
}, },
{ {
host: host, host: host,
}, },
); );
checkUser.host = host;
} }
logger.info('Returning existing person'); logger.info('Returning existing person');
return checkUser; return checkUser;
@ -213,7 +216,7 @@ export async function createPerson(
if (host != toPuny(new URL(object.id).hostname)) { if (host != toPuny(new URL(object.id).hostname)) {
checkUser = (await Users.findOneBy({ checkUser = (await Users.findOneBy({
usernameLower: person.preferredUsername!.toLowerCase(), usernameLower: usernameLower,
host: host, host: host,
})) as IRemoteUser | null; })) as IRemoteUser | null;
@ -223,6 +226,7 @@ export async function createPerson(
return checkUser; return checkUser;
} }
} }
}
const { fields } = analyzeAttachments(person.attachment || []); const { fields } = analyzeAttachments(person.attachment || []);