mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-29 01:56:12 +01:00
feat: send out Update(Actor) when a category is edited
This commit also updates the activity sent out when a user profile is edited. The activity is now sent to all known actors. closes #12655
This commit is contained in:
@@ -172,12 +172,27 @@ activitypubApi.create.note = enabledCheck(async (caller, { pid }) => {
|
|||||||
activitypubApi.update = {};
|
activitypubApi.update = {};
|
||||||
|
|
||||||
activitypubApi.update.profile = enabledCheck(async (caller, { uid }) => {
|
activitypubApi.update.profile = enabledCheck(async (caller, { uid }) => {
|
||||||
const [object, followers] = await Promise.all([
|
const [object, targets] = await Promise.all([
|
||||||
activitypub.mocks.actors.user(uid),
|
activitypub.mocks.actors.user(uid),
|
||||||
db.getSortedSetMembers(`followersRemote:${caller.uid}`),
|
db.getSortedSetMembers('usersRemote:lastCrawled'),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
await activitypub.send('uid', caller.uid, followers, {
|
await activitypub.send('uid', caller.uid, targets, {
|
||||||
|
id: `${object.id}#activity/update/${Date.now()}`,
|
||||||
|
type: 'Update',
|
||||||
|
to: [activitypub._constants.publicAddress],
|
||||||
|
cc: [],
|
||||||
|
object,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
activitypubApi.update.category = enabledCheck(async (caller, { cid }) => {
|
||||||
|
const [object, targets] = await Promise.all([
|
||||||
|
activitypub.mocks.actors.category(cid),
|
||||||
|
db.getSortedSetMembers('usersRemote:lastCrawled'),
|
||||||
|
]);
|
||||||
|
|
||||||
|
await activitypub.send('cid', cid, targets, {
|
||||||
id: `${object.id}#activity/update/${Date.now()}`,
|
id: `${object.id}#activity/update/${Date.now()}`,
|
||||||
type: 'Update',
|
type: 'Update',
|
||||||
to: [activitypub._constants.publicAddress],
|
to: [activitypub._constants.publicAddress],
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ const user = require('../user');
|
|||||||
const groups = require('../groups');
|
const groups = require('../groups');
|
||||||
const privileges = require('../privileges');
|
const privileges = require('../privileges');
|
||||||
|
|
||||||
|
const activitypubApi = require('./activitypub');
|
||||||
|
|
||||||
const categoriesAPI = module.exports;
|
const categoriesAPI = module.exports;
|
||||||
|
|
||||||
const hasAdminPrivilege = async (uid, privilege = 'categories') => {
|
const hasAdminPrivilege = async (uid, privilege = 'categories') => {
|
||||||
@@ -63,6 +65,7 @@ categoriesAPI.update = async function (caller, data) {
|
|||||||
const payload = {};
|
const payload = {};
|
||||||
payload[cid] = values;
|
payload[cid] = values;
|
||||||
await categories.update(payload);
|
await categories.update(payload);
|
||||||
|
await activitypubApi.update.category(caller, { cid });
|
||||||
};
|
};
|
||||||
|
|
||||||
categoriesAPI.delete = async function (caller, { cid }) {
|
categoriesAPI.delete = async function (caller, { cid }) {
|
||||||
|
|||||||
Reference in New Issue
Block a user