Fix updating host on updatePerson
This commit is contained in:
parent
a2fbf57769
commit
558b58a0cd
1 changed files with 31 additions and 27 deletions
|
|
@ -187,41 +187,45 @@ 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);
|
||||||
|
|
||||||
let checkUser = (await Users.findOneBy({
|
const usernameLower = person.preferredUsername?.toLowerCase();
|
||||||
usernameLower: person.preferredUsername!.toLowerCase(),
|
|
||||||
host: toPuny(new URL(object.id).hostname),
|
|
||||||
})) as IRemoteUser | null;
|
|
||||||
|
|
||||||
if (checkUser != null) {
|
if (usernameLower !== null) {
|
||||||
logger.info('Person already exists');
|
let checkUser = (await Users.findOneBy({
|
||||||
if (host != checkUser.host) {
|
usernameLower: usernameLower,
|
||||||
logger.info('Updating existing person with canonical account domain');
|
host: toPuny(new URL(object.id).hostname),
|
||||||
checkUser.host = host;
|
|
||||||
await Users.update(
|
|
||||||
{
|
|
||||||
usernameLower: checkUser.usernameLower,
|
|
||||||
host: checkUser.host,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
host: host,
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
logger.info('Returning existing person');
|
|
||||||
return checkUser;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (host != toPuny(new URL(object.id).hostname)) {
|
|
||||||
checkUser = (await Users.findOneBy({
|
|
||||||
usernameLower: person.preferredUsername!.toLowerCase(),
|
|
||||||
host: host,
|
|
||||||
})) 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) {
|
||||||
|
logger.info(`Updating existing person with canonical account domain (${usernameLower}@${checkUser.host} -> ${usernameLower}@${host})`);
|
||||||
|
await Users.update(
|
||||||
|
{
|
||||||
|
usernameLower: usernameLower,
|
||||||
|
host: checkUser.host,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
host: host,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
checkUser.host = host;
|
||||||
|
}
|
||||||
logger.info('Returning existing person');
|
logger.info('Returning existing person');
|
||||||
return checkUser;
|
return checkUser;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (host != toPuny(new URL(object.id).hostname)) {
|
||||||
|
checkUser = (await Users.findOneBy({
|
||||||
|
usernameLower: usernameLower,
|
||||||
|
host: host,
|
||||||
|
})) as IRemoteUser | null;
|
||||||
|
|
||||||
|
if (checkUser != null) {
|
||||||
|
logger.info('Person already exists');
|
||||||
|
logger.info('Returning existing person');
|
||||||
|
return checkUser;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const { fields } = analyzeAttachments(person.attachment || []);
|
const { fields } = analyzeAttachments(person.attachment || []);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue