diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2019-04-10 00:59:41 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2019-04-10 00:59:41 +0900 |
| commit | 236d72685dfec013135fc1450b890e33ec377de1 (patch) | |
| tree | b4d06e3587da7de4b35a822d6dcfe74367bdfa38 /src/remote/resolve-user.ts | |
| parent | Fix bug (diff) | |
| download | sharkey-236d72685dfec013135fc1450b890e33ec377de1.tar.gz sharkey-236d72685dfec013135fc1450b890e33ec377de1.tar.bz2 sharkey-236d72685dfec013135fc1450b890e33ec377de1.zip | |
More puny
Diffstat (limited to 'src/remote/resolve-user.ts')
| -rw-r--r-- | src/remote/resolve-user.ts | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/src/remote/resolve-user.ts b/src/remote/resolve-user.ts index a10d3c2d84..e6a11bc0da 100644 --- a/src/remote/resolve-user.ts +++ b/src/remote/resolve-user.ts @@ -1,4 +1,3 @@ -import { toUnicode, toASCII } from 'punycode'; import webFinger from './webfinger'; import config from '../config'; import { createPerson, updatePerson } from './activitypub/models/person'; @@ -7,31 +6,27 @@ import { remoteLogger } from './logger'; import chalk from 'chalk'; import { User, IRemoteUser } from '../models/entities/user'; import { Users } from '../models'; +import { toPuny } from '../misc/convert-host'; const logger = remoteLogger.createSubLogger('resolve-user'); -export async function resolveUser(username: string, _host: string, option?: any, resync = false): Promise<User> { +export async function resolveUser(username: string, host: string, option?: any, resync = false): Promise<User> { const usernameLower = username.toLowerCase(); + host = toPuny(host); - if (_host == null) { + if (host == null) { logger.info(`return local user: ${usernameLower}`); return await Users.findOne({ usernameLower, host: null }); } - const configHostAscii = toASCII(config.host).toLowerCase(); - const configHost = toUnicode(configHostAscii); - - const hostAscii = toASCII(_host).toLowerCase(); - const host = toUnicode(hostAscii); - - if (configHost == host) { + if (config.host == host) { logger.info(`return local user: ${usernameLower}`); return await Users.findOne({ usernameLower, host: null }); } const user = await Users.findOne({ usernameLower, host }, option); - const acctLower = `${usernameLower}@${hostAscii}`; + const acctLower = `${usernameLower}@${host}`; if (user == null) { const self = await resolveSelf(acctLower); @@ -51,7 +46,7 @@ export async function resolveUser(username: string, _host: string, option?: any, // validate uri const uri = new URL(self.href); - if (uri.hostname !== hostAscii) { + if (uri.hostname !== host) { throw new Error(`Invalied uri`); } |