feat: save privilege masking set when asserting group

This commit is contained in:
Julian Lam
2025-12-03 13:53:02 -05:00
parent 7b194c6916
commit f0a7a442db
2 changed files with 14 additions and 0 deletions

View File

@@ -400,12 +400,21 @@ Actors.assertGroup = async (ids, options = {}) => {
db.deleteObjectFields('handle:cid', queries.handleRemove),
]);
// Privilege mask
const masksAdd = categoryObjs.reduce((queries, category) => {
if (category?._activitypub?.postingRestrictedToMods) {
queries.push(db.setAdd.call(db, `cid:${category.cid}:privilegeMask`, 'topics:create'));
}
return queries;
}, []);
await Promise.all([
db.setObjectBulk(bulkSet),
db.sortedSetAdd('usersRemote:lastCrawled', groups.map(() => now), groups.map(p => p.id)),
db.sortedSetAddBulk(queries.searchAdd),
db.setObject('handle:cid', queries.handleAdd),
_migratePersonToGroup(categoryObjs),
Promise.all(masksAdd),
]);
return categoryObjs;

View File

@@ -281,6 +281,7 @@ Mocks.category = async (actors) => {
let {
url, preferredUsername, icon, /* image, */
name, summary, followers, inbox, endpoints, tag,
postingRestrictedToMods,
} = actor;
preferredUsername = slugify(preferredUsername || name);
/*
@@ -338,6 +339,10 @@ Mocks.category = async (actors) => {
inbox,
sharedInbox: endpoints ? endpoints.sharedInbox : null,
followersUrl: followers,
_activitypub: {
postingRestrictedToMods,
},
};
return payload;