fix: AP S2S handling for /user/:userslug route

This commit is contained in:
Julian Lam
2024-03-12 10:41:10 -04:00
parent ba3eae7a64
commit 9cd6b496ba
2 changed files with 6 additions and 3 deletions

View File

@@ -17,6 +17,7 @@ const posts = require('../posts');
const messaging = require('../messaging');
const flags = require('../flags');
const slugify = require('../slugify');
const utils = require('../utils');
const activitypub = require('../activitypub');
const helpers = require('./helpers');
@@ -25,9 +26,11 @@ const controllerHelpers = require('../controllers/helpers');
const Assert = module.exports;
Assert.user = helpers.try(async (req, res, next) => {
const uid = req.params.uid || res.locals.uid;
if (
(isFinite(req.params.uid) && await user.exists(req.params.uid)) ||
(req.params.uid.indexOf('@') !== -1 && await activitypub.helpers.query(req.params.uid))
(utils.isNumber(uid) && await user.exists(uid)) ||
(uid.indexOf('@') !== -1 && await activitypub.helpers.query(uid))
) {
return next();
}

View File

@@ -21,7 +21,7 @@ module.exports = function (app, middleware, controllers) {
app.post('/inbox', [...middlewares, middleware.activitypub.validate], controllers.activitypub.postInbox);
app.get('/uid/:uid', [...middlewares, middleware.assert.user], controllers.activitypub.actors.user);
app.get('/user/:userslug', [...middlewares, middleware.assert.user, middleware.exposeUid], controllers.activitypub.actors.userBySlug);
app.get('/user/:userslug', [...middlewares, middleware.exposeUid, middleware.assert.user], controllers.activitypub.actors.userBySlug);
app.get('/uid/:uid/inbox', [...middlewares, middleware.assert.user], controllers.activitypub.getInbox);
app.post('/uid/:uid/inbox', [...middlewares, middleware.assert.user, middleware.activitypub.validate], controllers.activitypub.postInbox);
app.get('/uid/:uid/outbox', [...middlewares, middleware.assert.user], controllers.activitypub.getOutbox);