mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
fix: AP S2S handling for /user/:userslug route
This commit is contained in:
@@ -17,6 +17,7 @@ const posts = require('../posts');
|
|||||||
const messaging = require('../messaging');
|
const messaging = require('../messaging');
|
||||||
const flags = require('../flags');
|
const flags = require('../flags');
|
||||||
const slugify = require('../slugify');
|
const slugify = require('../slugify');
|
||||||
|
const utils = require('../utils');
|
||||||
const activitypub = require('../activitypub');
|
const activitypub = require('../activitypub');
|
||||||
|
|
||||||
const helpers = require('./helpers');
|
const helpers = require('./helpers');
|
||||||
@@ -25,9 +26,11 @@ const controllerHelpers = require('../controllers/helpers');
|
|||||||
const Assert = module.exports;
|
const Assert = module.exports;
|
||||||
|
|
||||||
Assert.user = helpers.try(async (req, res, next) => {
|
Assert.user = helpers.try(async (req, res, next) => {
|
||||||
|
const uid = req.params.uid || res.locals.uid;
|
||||||
|
|
||||||
if (
|
if (
|
||||||
(isFinite(req.params.uid) && await user.exists(req.params.uid)) ||
|
(utils.isNumber(uid) && await user.exists(uid)) ||
|
||||||
(req.params.uid.indexOf('@') !== -1 && await activitypub.helpers.query(req.params.uid))
|
(uid.indexOf('@') !== -1 && await activitypub.helpers.query(uid))
|
||||||
) {
|
) {
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ module.exports = function (app, middleware, controllers) {
|
|||||||
app.post('/inbox', [...middlewares, middleware.activitypub.validate], controllers.activitypub.postInbox);
|
app.post('/inbox', [...middlewares, middleware.activitypub.validate], controllers.activitypub.postInbox);
|
||||||
|
|
||||||
app.get('/uid/:uid', [...middlewares, middleware.assert.user], controllers.activitypub.actors.user);
|
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.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.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);
|
app.get('/uid/:uid/outbox', [...middlewares, middleware.assert.user], controllers.activitypub.getOutbox);
|
||||||
|
|||||||
Reference in New Issue
Block a user