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), 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([ await Promise.all([
db.setObjectBulk(bulkSet), db.setObjectBulk(bulkSet),
db.sortedSetAdd('usersRemote:lastCrawled', groups.map(() => now), groups.map(p => p.id)), db.sortedSetAdd('usersRemote:lastCrawled', groups.map(() => now), groups.map(p => p.id)),
db.sortedSetAddBulk(queries.searchAdd), db.sortedSetAddBulk(queries.searchAdd),
db.setObject('handle:cid', queries.handleAdd), db.setObject('handle:cid', queries.handleAdd),
_migratePersonToGroup(categoryObjs), _migratePersonToGroup(categoryObjs),
Promise.all(masksAdd),
]); ]);
return categoryObjs; return categoryObjs;

View File

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