Page MenuHomePhorge

D14462.1765327013.diff
No OneTemporary

Size
9 KB
Referenced Files
None
Subscribers
None

D14462.1765327013.diff

diff --git a/lib/permissions/minimally-encoded-thread-permissions-test-data.js b/lib/permissions/minimally-encoded-thread-permissions-test-data.js
--- a/lib/permissions/minimally-encoded-thread-permissions-test-data.js
+++ b/lib/permissions/minimally-encoded-thread-permissions-test-data.js
@@ -101,6 +101,14 @@
value: false,
source: null,
},
+ delete_own_messages: {
+ value: false,
+ source: null,
+ },
+ delete_all_messages: {
+ value: false,
+ source: null,
+ },
},
isSender: false,
},
@@ -192,6 +200,14 @@
value: false,
source: null,
},
+ delete_own_messages: {
+ value: false,
+ source: null,
+ },
+ delete_all_messages: {
+ value: false,
+ source: null,
+ },
},
isSender: true,
},
@@ -305,6 +321,14 @@
value: false,
source: null,
},
+ delete_own_messages: {
+ value: false,
+ source: null,
+ },
+ delete_all_messages: {
+ value: false,
+ source: null,
+ },
},
subscription: {
home: true,
@@ -484,6 +508,14 @@
value: false,
source: null,
},
+ delete_own_messages: {
+ value: false,
+ source: null,
+ },
+ delete_all_messages: {
+ value: false,
+ source: null,
+ },
},
isSender: false,
},
@@ -583,6 +615,14 @@
value: false,
source: null,
},
+ delete_own_messages: {
+ value: false,
+ source: null,
+ },
+ delete_all_messages: {
+ value: false,
+ source: null,
+ },
},
isSender: true,
},
@@ -704,6 +744,14 @@
value: false,
source: null,
},
+ delete_own_messages: {
+ value: false,
+ source: null,
+ },
+ delete_all_messages: {
+ value: false,
+ source: null,
+ },
},
subscription: {
home: true,
diff --git a/lib/permissions/minimally-encoded-thread-permissions.js b/lib/permissions/minimally-encoded-thread-permissions.js
--- a/lib/permissions/minimally-encoded-thread-permissions.js
+++ b/lib/permissions/minimally-encoded-thread-permissions.js
@@ -51,6 +51,8 @@
manage_invite_links: BigInt(20),
voiced_in_announcement_channels: BigInt(21),
manage_farcaster_channel_tags: BigInt(22),
+ delete_own_messages: BigInt(23),
+ delete_all_messages: BigInt(24),
});
// `minimallyEncodedThreadPermissions` is used to map each permission
diff --git a/lib/permissions/minimally-encoded-thread-permissions.test.js b/lib/permissions/minimally-encoded-thread-permissions.test.js
--- a/lib/permissions/minimally-encoded-thread-permissions.test.js
+++ b/lib/permissions/minimally-encoded-thread-permissions.test.js
@@ -54,6 +54,8 @@
manage_invite_links: { value: false, source: null },
voiced_in_announcement_channels: { value: false, source: null },
manage_farcaster_channel_tags: { value: false, source: null },
+ delete_own_messages: { value: false, source: null },
+ delete_all_messages: { value: false, source: null },
};
describe('minimallyEncodedThreadPermissions', () => {
@@ -131,6 +133,8 @@
manage_invite_links: { value: false, source: null },
voiced_in_announcement_channels: { value: false, source: null },
manage_farcaster_channel_tags: { value: false, source: null },
+ delete_own_messages: { value: false, source: null },
+ delete_all_messages: { value: false, source: null },
};
it('should decode ThreadPermissionsInfo from bitmask', () => {
@@ -173,6 +177,8 @@
manage_invite_links: { value: false, source: null },
voiced_in_announcement_channels: { value: false, source: null },
manage_farcaster_channel_tags: { value: false, source: null },
+ delete_own_messages: { value: false, source: null },
+ delete_all_messages: { value: false, source: null },
});
});
});
@@ -637,6 +643,14 @@
value: false,
source: null,
},
+ delete_own_messages: {
+ value: false,
+ source: null,
+ },
+ delete_all_messages: {
+ value: false,
+ source: null,
+ },
},
subscription: {
home: true,
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
@@ -241,6 +241,7 @@
userSurfacedPermissions.ADD_MEMBERS,
userSurfacedPermissions.EDIT_CALENDAR,
userSurfacedPermissions.CREATE_AND_EDIT_CHANNELS,
+ userSurfacedPermissions.DELETE_OWN_MESSAGES,
];
function getRolePermissionBlobsForCommunityRoot(
@@ -282,6 +283,10 @@
const descendantReactToMessage =
DESCENDANT + threadPermissions.REACT_TO_MESSAGE;
const descendantEditMessage = DESCENDANT + threadPermissions.EDIT_MESSAGE;
+ const descendantDeleteOwnMessages =
+ DESCENDANT + threadPermissions.DELETE_OWN_MESSAGES;
+ const descendantDeleteAllMessages =
+ DESCENDANT + threadPermissions.DELETE_ALL_MESSAGES;
const baseAdminPermissions = {
[threadPermissions.KNOW_OF]: true,
@@ -303,6 +308,8 @@
[threadPermissions.MANAGE_INVITE_LINKS]: true,
[threadPermissions.VOICED_IN_ANNOUNCEMENT_CHANNELS]: true,
[threadPermissions.MANAGE_FARCASTER_CHANNEL_TAGS]: true,
+ [threadPermissions.DELETE_OWN_MESSAGES]: true,
+ [threadPermissions.DELETE_ALL_MESSAGES]: true,
[descendantKnowOf]: true,
[descendantVisible]: true,
[topLevelDescendantJoinThread]: true,
@@ -324,6 +331,8 @@
[topLevelDescendantVoicedInAnnouncementChannels]: true,
[descendantReactToMessage]: true,
[descendantEditMessage]: true,
+ [descendantDeleteOwnMessages]: true,
+ [descendantDeleteAllMessages]: true,
};
let adminPermissions;
@@ -480,6 +489,7 @@
[threadPermissions.EDIT_THREAD_COLOR]: true,
[threadPermissions.EDIT_THREAD_DESCRIPTION]: true,
[threadPermissions.EDIT_THREAD_AVATAR]: true,
+ [threadPermissions.DELETE_OWN_MESSAGES]: true,
};
if (threadType === threadTypes.THICK_SIDEBAR) {
return {
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
@@ -33,6 +33,8 @@
MANAGE_INVITE_LINKS: 'manage_invite_links',
VOICED_IN_ANNOUNCEMENT_CHANNELS: 'voiced_in_announcement_channels',
MANAGE_FARCASTER_CHANNEL_TAGS: 'manage_farcaster_channel_tags',
+ DELETE_OWN_MESSAGES: 'delete_own_messages',
+ DELETE_ALL_MESSAGES: 'delete_all_messages',
});
export type ThreadPermissionNotAffectedByBlock = $Values<
@@ -75,7 +77,9 @@
ourThreadPermission === 'manage_pins' ||
ourThreadPermission === 'manage_invite_links' ||
ourThreadPermission === 'voiced_in_announcement_channels' ||
- ourThreadPermission === 'manage_farcaster_channel_tags',
+ ourThreadPermission === 'manage_farcaster_channel_tags' ||
+ ourThreadPermission === 'delete_all_messages' ||
+ ourThreadPermission === 'delete_own_messages',
'string is not threadPermissions enum',
);
return ourThreadPermission;
@@ -154,6 +158,7 @@
threadPermissions.DELETE_THREAD,
threadPermissions.CHANGE_ROLE,
threadPermissions.MANAGE_PINS,
+ threadPermissions.DELETE_ALL_MESSAGES,
];
export const threadPermissionsRemovedForGenesisMembers: $ReadOnlyArray<ThreadPermission> =
@@ -161,6 +166,7 @@
threadPermissions.REACT_TO_MESSAGE,
threadPermissions.EDIT_MESSAGE,
threadPermissions.ADD_MEMBERS,
+ threadPermissions.DELETE_OWN_MESSAGES,
];
// These are the set of user-facing permissions that we display as configurable
@@ -187,6 +193,8 @@
EDIT_MESSAGES: 'edit_messages',
MANAGE_INVITE_LINKS: 'manage_invite_links',
MANAGE_FARCASTER_CHANNEL_TAGS: 'manage_farcaster_channel_tags',
+ DELETE_OWN_MESSAGES: 'delete_own_messages',
+ DELETE_ALL_MESSAGES: 'delete_all_messages',
});
export type UserSurfacedPermission = $Values<typeof userSurfacedPermissions>;
export const userSurfacedPermissionsSet: $ReadOnlySet<UserSurfacedPermission> =
@@ -422,6 +430,36 @@
manageFarcasterChannelTags,
]);
+const deleteOwnMessagesPermission = {
+ title: 'Delete own messages',
+ description: 'Allows members to delete their sent messages',
+ userSurfacedPermission: userSurfacedPermissions.DELETE_OWN_MESSAGES,
+};
+const deleteOwnMessages = threadPermissions.DELETE_OWN_MESSAGES;
+const descendantDeleteOwnMessages =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.DELETE_OWN_MESSAGES;
+const deleteOwnMessagesPermissions = new Set([
+ deleteOwnMessages,
+ descendantDeleteOwnMessages,
+]);
+
+const deleteALlMessagesPermission = {
+ title: 'Delete all messages',
+ description: 'Allows members to delete any sent message',
+ userSurfacedPermission: userSurfacedPermissions.DELETE_ALL_MESSAGES,
+};
+const deleteAllMessages = threadPermissions.DELETE_ALL_MESSAGES;
+const descendantDeleteAllMessages =
+ threadPermissionPropagationPrefixes.DESCENDANT +
+ threadPermissionMembershipPrefixes.MEMBER +
+ threadPermissions.DELETE_ALL_MESSAGES;
+const deleteAllMessagesPermissions = new Set([
+ deleteAllMessages,
+ descendantDeleteAllMessages,
+]);
+
export type UserSurfacedPermissionOption = {
+title: string,
+description: string,
@@ -443,6 +481,8 @@
editMessagePermission,
manageInviteLinksPermission,
manageFarcasterChannelTagsPermission,
+ deleteOwnMessagesPermission,
+ deleteALlMessagesPermission,
]);
type ConfigurableCommunityPermission = {
@@ -468,6 +508,8 @@
[userSurfacedPermissions.MANAGE_INVITE_LINKS]: manageInviteLinksPermissions,
[userSurfacedPermissions.MANAGE_FARCASTER_CHANNEL_TAGS]:
manageFarcasterChannelTagsPermissions,
+ [userSurfacedPermissions.DELETE_OWN_MESSAGES]: deleteOwnMessagesPermissions,
+ [userSurfacedPermissions.DELETE_ALL_MESSAGES]: deleteAllMessagesPermissions,
});
export type ThreadPermissionInfo =

File Metadata

Mime Type
text/plain
Expires
Wed, Dec 10, 12:36 AM (11 h, 39 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5859193
Default Alt Text
D14462.1765327013.diff (9 KB)

Event Timeline