Page MenuHomePhabricator

D13017.id43234.diff
No OneTemporary

D13017.id43234.diff

diff --git a/lib/permissions/thread-permissions.js b/lib/permissions/thread-permissions.js
--- a/lib/permissions/thread-permissions.js
+++ b/lib/permissions/thread-permissions.js
@@ -346,17 +346,6 @@
};
}
-const nonCommunityVoicedPermissions = {
- [threadPermissions.VOICED]: true,
- [threadPermissions.EDIT_ENTRIES]: true,
- [threadPermissions.EDIT_THREAD_NAME]: true,
- [threadPermissions.EDIT_THREAD_COLOR]: true,
- [threadPermissions.EDIT_THREAD_DESCRIPTION]: true,
- [threadPermissions.EDIT_THREAD_AVATAR]: true,
- [threadPermissions.CREATE_SUBCHANNELS]: true,
- [threadPermissions.ADD_MEMBERS]: true,
-};
-
function getRolePermissionBlobs(threadType: ThreadType): RolePermissionBlobs {
if (threadTypeIsThick(threadType)) {
const thickThreadType = assertThickThreadType(threadType);
@@ -371,15 +360,6 @@
if (thinThreadType === threadTypes.SIDEBAR) {
const memberPermissions = {
[threadPermissions.VOICED]: true,
- [threadPermissions.REACT_TO_MESSAGE]: true,
- [threadPermissions.EDIT_MESSAGE]: true,
- [threadPermissions.EDIT_THREAD_NAME]: true,
- [threadPermissions.EDIT_THREAD_COLOR]: true,
- [threadPermissions.EDIT_THREAD_DESCRIPTION]: true,
- [threadPermissions.EDIT_THREAD_AVATAR]: true,
- [threadPermissions.ADD_MEMBERS]: true,
- [threadPermissions.EDIT_PERMISSIONS]: true,
- [threadPermissions.REMOVE_MEMBERS]: true,
[threadPermissions.LEAVE_THREAD]: true,
};
return {
@@ -396,12 +376,7 @@
[threadPermissions.KNOW_OF]: true,
[threadPermissions.VISIBLE]: true,
[threadPermissions.VOICED]: true,
- [threadPermissions.REACT_TO_MESSAGE]: true,
- [threadPermissions.EDIT_MESSAGE]: true,
- [threadPermissions.EDIT_THREAD_COLOR]: true,
- [threadPermissions.EDIT_THREAD_DESCRIPTION]: true,
[threadPermissions.CREATE_SIDEBARS]: true,
- [threadPermissions.EDIT_ENTRIES]: true,
[openDescendantKnowOf]: true,
[openDescendantVisible]: true,
[openChildJoinThread]: true,
@@ -417,12 +392,6 @@
[threadPermissions.KNOW_OF]: true,
[threadPermissions.VISIBLE]: true,
[threadPermissions.VOICED]: true,
- [threadPermissions.REACT_TO_MESSAGE]: true,
- [threadPermissions.EDIT_MESSAGE]: true,
- [threadPermissions.EDIT_ENTRIES]: true,
- [threadPermissions.EDIT_THREAD_NAME]: true,
- [threadPermissions.EDIT_THREAD_COLOR]: true,
- [threadPermissions.EDIT_THREAD_DESCRIPTION]: true,
[threadPermissions.CREATE_SIDEBARS]: true,
[openDescendantKnowOf]: true,
[openDescendantVisible]: true,
@@ -437,8 +406,6 @@
const subthreadBasePermissions = {
[threadPermissions.KNOW_OF]: true,
[threadPermissions.VISIBLE]: true,
- [threadPermissions.REACT_TO_MESSAGE]: true,
- [threadPermissions.EDIT_MESSAGE]: true,
[threadPermissions.CREATE_SIDEBARS]: true,
[threadPermissions.LEAVE_THREAD]: true,
[openDescendantKnowOf]: true,
@@ -452,10 +419,8 @@
thinThreadType === threadTypes.COMMUNITY_SECRET_SUBTHREAD
) {
const memberPermissions = {
- [threadPermissions.REMOVE_MEMBERS]: true,
- [threadPermissions.EDIT_PERMISSIONS]: true,
...subthreadBasePermissions,
- ...nonCommunityVoicedPermissions,
+ [threadPermissions.VOICED]: true,
};
return {
Members: memberPermissions,
diff --git a/lib/types/thread-permission-types.js b/lib/types/thread-permission-types.js
--- a/lib/types/thread-permission-types.js
+++ b/lib/types/thread-permission-types.js
@@ -150,7 +150,11 @@
userSurfacedPermission: userSurfacedPermissions.EDIT_CALENDAR,
};
const editEntries = threadPermissions.EDIT_ENTRIES;
-const editCalendarPermissions = new Set([editEntries]);
+const descendantEditEntries =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.EDIT_ENTRIES;
+const editCalendarPermissions = new Set([editEntries, descendantEditEntries]);
const knowOfSecretChannelsPermission = {
title: 'Know of secret channels',
@@ -201,16 +205,42 @@
userSurfacedPermission: userSurfacedPermissions.CREATE_AND_EDIT_CHANNELS,
};
const editThreadName = threadPermissions.EDIT_THREAD_NAME;
+const descendantEditThreadName =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.EDIT_THREAD_NAME;
const editThreadDescription = threadPermissions.EDIT_THREAD_DESCRIPTION;
+const descendantEditThreadDescription =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.EDIT_THREAD_DESCRIPTION;
const editThreadColor = threadPermissions.EDIT_THREAD_COLOR;
+const descendantEditThreadColor =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.EDIT_THREAD_COLOR;
const createSubchannels = threadPermissions.CREATE_SUBCHANNELS;
+const descendantCreateSubchannels =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionFilterPrefixes.TOP_LEVEL +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.CREATE_SUBCHANNELS;
const editThreadAvatar = threadPermissions.EDIT_THREAD_AVATAR;
+const descendantEditThreadAvatar =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.EDIT_THREAD_AVATAR;
const createAndEditChannelsPermissions = new Set([
editThreadName,
+ descendantEditThreadName,
editThreadDescription,
+ descendantEditThreadDescription,
editThreadColor,
+ descendantEditThreadColor,
createSubchannels,
+ descendantCreateSubchannels,
editThreadAvatar,
+ descendantEditThreadAvatar,
]);
const deleteChannelsPermission = {
@@ -219,18 +249,26 @@
userSurfacedPermission: userSurfacedPermissions.DELETE_CHANNELS,
};
const deleteThread = threadPermissions.DELETE_THREAD;
-const deleteChannelsPermissions = new Set([deleteThread]);
+const descendantDeleteThread =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.DELETE_THREAD;
+const deleteChannelsPermissions = new Set([
+ deleteThread,
+ descendantDeleteThread,
+]);
const addMembersPermission = {
title: 'Add members',
description: 'Allows members to add other members to channels',
userSurfacedPermission: userSurfacedPermissions.ADD_MEMBERS,
};
-const childOpenAddMembers =
- threadPermissionPropagationPrefixes.CHILD +
- threadPermissionFilterPrefixes.OPEN +
+const descendantAddMembers =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionFilterPrefixes.OPEN_TOP_LEVEL +
+ threadPermissionMembershipPrefixes.MEMBER +
threadPermissions.ADD_MEMBERS;
-const addMembersPermissions = new Set([childOpenAddMembers]);
+const addMembersPermissions = new Set([descendantAddMembers]);
const removeMembersPermission = {
title: 'Remove members',
@@ -238,7 +276,14 @@
userSurfacedPermission: userSurfacedPermissions.REMOVE_MEMBERS,
};
const removeMembers = threadPermissions.REMOVE_MEMBERS;
-const removeMembersPermissions = new Set([removeMembers]);
+const descendantRemoveMembers =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.REMOVE_MEMBERS;
+const removeMembersPermissions = new Set([
+ removeMembers,
+ descendantRemoveMembers,
+]);
const changeRolePermission = {
title: 'Change roles',
@@ -254,7 +299,14 @@
userSurfacedPermission: userSurfacedPermissions.EDIT_VISIBILITY,
};
const editPermissions = threadPermissions.EDIT_PERMISSIONS;
-const editVisibilityPermissions = new Set([editPermissions]);
+const descendantEditPermissions =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.EDIT_PERMISSIONS;
+const editVisibilityPermissions = new Set([
+ editPermissions,
+ descendantEditPermissions,
+]);
const managePinsPermission = {
title: 'Manage pins',
@@ -262,7 +314,11 @@
userSurfacedPermission: userSurfacedPermissions.MANAGE_PINS,
};
const managePins = threadPermissions.MANAGE_PINS;
-const managePinsPermissions = new Set([managePins]);
+const descendantManagePins =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.MANAGE_PINS;
+const managePinsPermissions = new Set([managePins, descendantManagePins]);
const reactToMessagePermission = {
title: 'React to messages',
@@ -270,7 +326,14 @@
userSurfacedPermission: userSurfacedPermissions.REACT_TO_MESSAGES,
};
const reactToMessage = threadPermissions.REACT_TO_MESSAGE;
-const reactToMessagePermissions = new Set([reactToMessage]);
+const descendantReactToMessage =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.REACT_TO_MESSAGE;
+const reactToMessagePermissions = new Set([
+ reactToMessage,
+ descendantReactToMessage,
+]);
const editMessagePermission = {
title: 'Edit messages',
@@ -278,7 +341,11 @@
userSurfacedPermission: userSurfacedPermissions.EDIT_MESSAGES,
};
const editMessage = threadPermissions.EDIT_MESSAGE;
-const editMessagePermissions = new Set([editMessage]);
+const descendantEditMessage =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.EDIT_MESSAGE;
+const editMessagePermissions = new Set([editMessage, descendantEditMessage]);
const manageInviteLinksPermission = {
title: 'Manage invite links',
@@ -286,7 +353,14 @@
userSurfacedPermission: userSurfacedPermissions.MANAGE_INVITE_LINKS,
};
const manageInviteLinks = threadPermissions.MANAGE_INVITE_LINKS;
-const manageInviteLinksPermissions = new Set([manageInviteLinks]);
+const descendantManageInviteLinks =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.MANAGE_INVITE_LINKS;
+const manageInviteLinksPermissions = new Set([
+ manageInviteLinks,
+ descendantManageInviteLinks,
+]);
const manageFarcasterChannelTagsPermission = {
title: 'Manage Farcaster channel tags',

File Metadata

Mime Type
text/plain
Expires
Sat, Oct 19, 1:21 PM (19 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2323108
Default Alt Text
D13017.id43234.diff (10 KB)

Event Timeline