Begin advanced search
[oweals/peertube.git] / server / middlewares / validators / webfinger.ts
index 34e62c66dc6a5cfb0d7851891b8d8e0a40c05a4e..3b9645048c4130ac2d52d4782f6a5e58b703c62f 100644 (file)
@@ -2,8 +2,9 @@ import * as express from 'express'
 import { query } from 'express-validator/check'
 import { isWebfingerResourceValid } from '../../helpers/custom-validators/webfinger'
 import { logger } from '../../helpers/logger'
-import { database as db } from '../../initializers'
+import { ActorModel } from '../../models/activitypub/actor'
 import { areValidationErrors } from './utils'
+import { getHostWithPort } from '../../helpers/express-utils'
 
 const webfingerValidator = [
   query('resource').custom(isWebfingerResourceValid).withMessage('Should have a valid webfinger resource'),
@@ -14,17 +15,17 @@ const webfingerValidator = [
     if (areValidationErrors(req, res)) return
 
     // Remove 'acct:' from the beginning of the string
-    const nameWithHost = req.query.resource.substr(5)
+    const nameWithHost = getHostWithPort(req.query.resource.substr(5))
     const [ name ] = nameWithHost.split('@')
 
-    const account = await db.Account.loadLocalByName(name)
-    if (!account) {
+    const actor = await ActorModel.loadLocalByName(name)
+    if (!actor) {
       return res.status(404)
-        .send({ error: 'Account not found' })
+        .send({ error: 'Actor not found' })
         .end()
     }
 
-    res.locals.account = account
+    res.locals.actor = actor
     return next()
   }
 ]