mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
chore: reorganize controllers for clarity
This commit is contained in:
@@ -10,16 +10,16 @@ const categories = require('../../categories');
|
|||||||
const plugins = require('../../plugins');
|
const plugins = require('../../plugins');
|
||||||
const privileges = require('../../privileges');
|
const privileges = require('../../privileges');
|
||||||
const accountHelpers = require('./helpers');
|
const accountHelpers = require('./helpers');
|
||||||
const { getActor } = require('../../activitypub');
|
|
||||||
const helpers = require('../helpers');
|
const helpers = require('../helpers');
|
||||||
const slugify = require('../../slugify');
|
|
||||||
const utils = require('../../utils');
|
const utils = require('../../utils');
|
||||||
|
|
||||||
|
const activitypubController = require('../activitypub');
|
||||||
|
|
||||||
const profileController = module.exports;
|
const profileController = module.exports;
|
||||||
|
|
||||||
profileController.get = async function (req, res, next) {
|
profileController.get = async function (req, res, next) {
|
||||||
if (res.locals.uid === -2) {
|
if (res.locals.uid === -2) {
|
||||||
return profileController.getFederated(req, res, next);
|
return activitypubController.profiles.get(req, res, next);
|
||||||
}
|
}
|
||||||
|
|
||||||
const lowercaseSlug = req.params.userslug.toLowerCase();
|
const lowercaseSlug = req.params.userslug.toLowerCase();
|
||||||
@@ -64,31 +64,6 @@ profileController.get = async function (req, res, next) {
|
|||||||
res.render('account/profile', userData);
|
res.render('account/profile', userData);
|
||||||
};
|
};
|
||||||
|
|
||||||
profileController.getFederated = async function (req, res, next) {
|
|
||||||
const { userslug: uid } = req.params;
|
|
||||||
const actor = await getActor(uid);
|
|
||||||
if (!actor) {
|
|
||||||
return next();
|
|
||||||
}
|
|
||||||
|
|
||||||
const { preferredUsername, published, icon, image, name, summary, hostname } = actor;
|
|
||||||
const payload = {
|
|
||||||
uid,
|
|
||||||
username: `${preferredUsername}@${hostname}`,
|
|
||||||
userslug: `${preferredUsername}@${hostname}`,
|
|
||||||
fullname: name,
|
|
||||||
joindate: new Date(published).getTime(),
|
|
||||||
picture: typeof icon === 'string' ? icon : icon.url,
|
|
||||||
uploadedpicture: typeof icon === 'string' ? icon : icon.url,
|
|
||||||
'cover:url': typeof image === 'string' ? image : image.url,
|
|
||||||
'cover:position': '50% 50%',
|
|
||||||
aboutme: summary,
|
|
||||||
aboutmeParsed: summary,
|
|
||||||
};
|
|
||||||
|
|
||||||
res.render('account/profile', payload);
|
|
||||||
};
|
|
||||||
|
|
||||||
async function incrementProfileViews(req, userData) {
|
async function incrementProfileViews(req, userData) {
|
||||||
if (req.uid >= 1) {
|
if (req.uid >= 1) {
|
||||||
req.session.uids_viewed = req.session.uids_viewed || {};
|
req.session.uids_viewed = req.session.uids_viewed || {};
|
||||||
|
|||||||
@@ -3,10 +3,12 @@
|
|||||||
const nconf = require('nconf');
|
const nconf = require('nconf');
|
||||||
|
|
||||||
const user = require('../user');
|
const user = require('../user');
|
||||||
const activitypub = require('../activitypub');
|
const activitypub = require('../../activitypub');
|
||||||
|
|
||||||
const Controller = module.exports;
|
const Controller = module.exports;
|
||||||
|
|
||||||
|
Controller.profiles = require('./profiles');
|
||||||
|
|
||||||
Controller.getActor = async (req, res) => {
|
Controller.getActor = async (req, res) => {
|
||||||
// todo: view:users priv gate
|
// todo: view:users priv gate
|
||||||
const { userslug } = req.params;
|
const { userslug } = req.params;
|
||||||
30
src/controllers/activitypub/profiles.js
Normal file
30
src/controllers/activitypub/profiles.js
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
const { getActor } = require('../../activitypub');
|
||||||
|
|
||||||
|
const controller = module.exports;
|
||||||
|
|
||||||
|
controller.get = async function (req, res, next) {
|
||||||
|
const { userslug: uid } = req.params;
|
||||||
|
const actor = await getActor(uid);
|
||||||
|
if (!actor) {
|
||||||
|
return next();
|
||||||
|
}
|
||||||
|
|
||||||
|
const { preferredUsername, published, icon, image, name, summary, hostname } = actor;
|
||||||
|
const payload = {
|
||||||
|
uid,
|
||||||
|
username: `${preferredUsername}@${hostname}`,
|
||||||
|
userslug: `${preferredUsername}@${hostname}`,
|
||||||
|
fullname: name,
|
||||||
|
joindate: new Date(published).getTime(),
|
||||||
|
picture: typeof icon === 'string' ? icon : icon.url,
|
||||||
|
uploadedpicture: typeof icon === 'string' ? icon : icon.url,
|
||||||
|
'cover:url': typeof image === 'string' ? image : image.url,
|
||||||
|
'cover:position': '50% 50%',
|
||||||
|
aboutme: summary,
|
||||||
|
aboutmeParsed: summary,
|
||||||
|
};
|
||||||
|
|
||||||
|
res.render('account/profile', payload);
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user