Page MenuHomePhabricator

D9549.diff
No OneTemporary

D9549.diff

diff --git a/.eslintrc.json b/.eslintrc.json
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -1,7 +1,8 @@
{
"root": true,
"env": {
- "es6": true
+ "es6": true,
+ "es2020": true
},
"extends": [
"eslint:recommended",
diff --git a/keyserver/src/responders/responder-validators.test.js b/keyserver/src/responders/responder-validators.test.js
--- a/keyserver/src/responders/responder-validators.test.js
+++ b/keyserver/src/responders/responder-validators.test.js
@@ -96,7 +96,6 @@
role: '83796',
permissions: {
know_of: { value: true, source: '1' },
- membership: { value: false, source: null },
visible: { value: true, source: '1' },
voiced: { value: true, source: '1' },
edit_entries: { value: true, source: '1' },
@@ -136,7 +135,6 @@
role: '83795',
permissions: {
know_of: { value: true, source: '1' },
- membership: { value: false, source: null },
visible: { value: true, source: '1' },
voiced: { value: false, source: null },
edit_entries: { value: false, source: null },
@@ -227,7 +225,6 @@
role: '83796',
permissions: {
know_of: { value: true, source: '1' },
- membership: { value: false, source: null },
visible: { value: true, source: '1' },
voiced: { value: true, source: '1' },
edit_entries: { value: true, source: '1' },
@@ -253,7 +250,6 @@
role: '83795',
permissions: {
know_of: { value: true, source: '1' },
- membership: { value: false, source: null },
visible: { value: true, source: '1' },
voiced: { value: false, source: null },
edit_entries: { value: false, source: null },
@@ -331,7 +327,6 @@
role: '83795',
permissions: {
know_of: { value: true, source: '1' },
- membership: { value: false, source: null },
visible: { value: true, source: '1' },
voiced: { value: false, source: null },
edit_entries: { value: false, source: null },
diff --git a/lib/permissions/minimally-encoded-thread-permissions.js b/lib/permissions/minimally-encoded-thread-permissions.js
new file mode 100644
--- /dev/null
+++ b/lib/permissions/minimally-encoded-thread-permissions.js
@@ -0,0 +1,78 @@
+// @flow
+
+import invariant from 'invariant';
+
+import type {
+ ThreadPermission,
+ ThreadPermissionsInfo,
+} from '../types/thread-permission-types.js';
+import { entries } from '../utils/objects.js';
+
+const minimallyEncodedThreadPermissions = Object.freeze({
+ // TODO (atul): Update flow to `194.0.0` for bigint support
+ // $FlowIssue bigint-unsupported
+ know_of: BigInt(1) << BigInt(0),
+ visible: BigInt(1) << BigInt(1),
+ voiced: BigInt(1) << BigInt(2),
+ edit_entries: BigInt(1) << BigInt(3),
+ edit_thread: BigInt(1) << BigInt(4), // EDIT_THREAD_NAME
+ edit_thread_description: BigInt(1) << BigInt(5),
+ edit_thread_color: BigInt(1) << BigInt(6),
+ delete_thread: BigInt(1) << BigInt(7),
+ create_subthreads: BigInt(1) << BigInt(8), // CREATE_SUBCHANNELS
+ create_sidebars: BigInt(1) << BigInt(9),
+ join_thread: BigInt(1) << BigInt(10),
+ edit_permissions: BigInt(1) << BigInt(11),
+ add_members: BigInt(1) << BigInt(12),
+ remove_members: BigInt(1) << BigInt(13),
+ change_role: BigInt(1) << BigInt(14),
+ leave_thread: BigInt(1) << BigInt(15),
+ react_to_message: BigInt(1) << BigInt(16),
+ edit_message: BigInt(1) << BigInt(17),
+ edit_thread_avatar: BigInt(1) << BigInt(18),
+ manage_pins: BigInt(1) << BigInt(19),
+ manage_invite_links: BigInt(1) << BigInt(20),
+});
+
+// TODO (atul): Update flow to `194.0.0` for bigint support
+// $FlowIssue bigint-unsupported
+const permissionsToBitmask = (permissions: ThreadPermissionsInfo): bigint => {
+ let bitmask = BigInt(0);
+ for (const [key, permission] of entries(permissions)) {
+ if (permission.value && key in minimallyEncodedThreadPermissions) {
+ invariant(
+ // TODO (atul): Update flow to `194.0.0` for bigint support
+ // $FlowIssue illegal-typeof
+ typeof minimallyEncodedThreadPermissions[key] === 'bigint',
+ 'must be bigint',
+ );
+ bitmask |= minimallyEncodedThreadPermissions[key];
+ }
+ }
+ return bitmask;
+};
+
+const hasPermission = (
+ // TODO (atul): Update flow to `194.0.0` for bigint support
+ // $FlowIssue bigint-unsupported
+ permissionsBitmask: bigint,
+ permission: ThreadPermission,
+): boolean => {
+ if (!(permission in minimallyEncodedThreadPermissions)) {
+ return false;
+ }
+ const permissionBitmask = minimallyEncodedThreadPermissions[permission];
+ invariant(
+ // TODO (atul): Update flow to `194.0.0` for bigint support
+ // $FlowIssue illegal-typeof
+ typeof permissionBitmask === 'bigint',
+ 'permissionBitmask must be of type bigint',
+ );
+ return (permissionsBitmask & permissionBitmask) !== BigInt(0);
+};
+
+export {
+ minimallyEncodedThreadPermissions,
+ permissionsToBitmask,
+ hasPermission,
+};
diff --git a/lib/permissions/minimally-encoded-thread-permissions.test.js b/lib/permissions/minimally-encoded-thread-permissions.test.js
new file mode 100644
--- /dev/null
+++ b/lib/permissions/minimally-encoded-thread-permissions.test.js
@@ -0,0 +1,53 @@
+// @flow
+
+import {
+ hasPermission,
+ permissionsToBitmask,
+} from './minimally-encoded-thread-permissions.js';
+
+describe('minimallyEncodedThreadPermissions', () => {
+ const permissions = {
+ know_of: { value: true, source: '1' },
+ visible: { value: true, source: '1' },
+ voiced: { value: true, source: '1' },
+ edit_entries: { value: true, source: '1' },
+ edit_thread: { value: true, source: '1' },
+ edit_thread_description: { value: true, source: '1' },
+ edit_thread_color: { value: true, source: '1' },
+ delete_thread: { value: true, source: '1' },
+ create_subthreads: { value: true, source: '1' },
+ create_sidebars: { value: true, source: '1' },
+ join_thread: { value: false, source: null },
+ edit_permissions: { value: false, source: null },
+ add_members: { value: true, source: '1' },
+ remove_members: { value: true, source: '1' },
+ change_role: { value: true, source: '1' },
+ leave_thread: { value: false, source: null },
+ react_to_message: { value: true, source: '1' },
+ edit_message: { value: true, source: '1' },
+ };
+
+ it('should encode ThreadPermissionsInfo as bitmask', () => {
+ const permissionsBitmask = permissionsToBitmask(permissions);
+ expect(permissionsBitmask.toString(2)).toBe('110111001111111111');
+ expect(hasPermission(permissionsBitmask, 'know_of')).toBe(true);
+ expect(hasPermission(permissionsBitmask, 'visible')).toBe(true);
+ expect(hasPermission(permissionsBitmask, 'voiced')).toBe(true);
+ expect(hasPermission(permissionsBitmask, 'edit_entries')).toBe(true);
+ expect(hasPermission(permissionsBitmask, 'edit_thread')).toBe(true);
+ expect(hasPermission(permissionsBitmask, 'edit_thread_description')).toBe(
+ true,
+ );
+ expect(hasPermission(permissionsBitmask, 'edit_thread_color')).toBe(true);
+ expect(hasPermission(permissionsBitmask, 'delete_thread')).toBe(true);
+ expect(hasPermission(permissionsBitmask, 'create_subthreads')).toBe(true);
+ expect(hasPermission(permissionsBitmask, 'create_sidebars')).toBe(true);
+ expect(hasPermission(permissionsBitmask, 'join_thread')).toBe(false);
+ expect(hasPermission(permissionsBitmask, 'edit_permissions')).toBe(false);
+ expect(hasPermission(permissionsBitmask, 'remove_members')).toBe(true);
+ expect(hasPermission(permissionsBitmask, 'change_role')).toBe(true);
+ expect(hasPermission(permissionsBitmask, 'leave_thread')).toBe(false);
+ expect(hasPermission(permissionsBitmask, 'react_to_message')).toBe(true);
+ expect(hasPermission(permissionsBitmask, 'edit_message')).toBe(true);
+ });
+});
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
@@ -12,7 +12,6 @@
// across all roles, it should be added to `universalCommunityPermissions`.
export const threadPermissions = Object.freeze({
KNOW_OF: 'know_of',
- MEMBERSHIP_DEPRECATED: 'membership',
VISIBLE: 'visible',
VOICED: 'voiced',
EDIT_ENTRIES: 'edit_entries',
@@ -41,7 +40,6 @@
): ThreadPermission {
invariant(
ourThreadPermissions === 'know_of' ||
- ourThreadPermissions === 'membership' ||
ourThreadPermissions === 'visible' ||
ourThreadPermissions === 'voiced' ||
ourThreadPermissions === 'edit_entries' ||
diff --git a/lib/types/validation.test.js b/lib/types/validation.test.js
--- a/lib/types/validation.test.js
+++ b/lib/types/validation.test.js
@@ -363,10 +363,6 @@
value: true,
source: '1',
},
- membership: {
- value: false,
- source: null,
- },
visible: {
value: true,
source: '1',
@@ -450,10 +446,6 @@
value: true,
source: '85171',
},
- membership: {
- value: false,
- source: null,
- },
visible: {
value: true,
source: '85171',
@@ -559,10 +551,6 @@
value: true,
source: '85171',
},
- membership: {
- value: false,
- source: null,
- },
visible: {
value: true,
source: '85171',
diff --git a/lib/utils/thread-ops-utils.test.js b/lib/utils/thread-ops-utils.test.js
--- a/lib/utils/thread-ops-utils.test.js
+++ b/lib/utils/thread-ops-utils.test.js
@@ -26,10 +26,6 @@
value: true,
source: '1',
},
- membership: {
- value: false,
- source: null,
- },
visible: {
value: true,
source: '1',
@@ -109,10 +105,6 @@
value: true,
source: '84015',
},
- membership: {
- value: false,
- source: null,
- },
visible: {
value: true,
source: '84015',
@@ -192,10 +184,6 @@
value: true,
source: '84015',
},
- membership: {
- value: false,
- source: null,
- },
visible: {
value: true,
source: '84015',
@@ -297,10 +285,6 @@
value: true,
source: '84015',
},
- membership: {
- value: false,
- source: null,
- },
visible: {
value: true,
source: '84015',
@@ -391,11 +375,11 @@
creationTime: '1679595843051',
parentThreadID: '1',
members:
- '[{"id":"256","role":null,"permissions":{"know_of":{"value":true,"source":"1"},"membership":{"value":false,"source":null},"visible":{"value":true,"source":"1"},"voiced":{"value":true,"source":"1"},"edit_entries":{"value":true,"source":"1"},"edit_thread":{"value":true,"source":"1"},"edit_thread_description":{"value":true,"source":"1"},"edit_thread_color":{"value":true,"source":"1"},"delete_thread":{"value":true,"source":"1"},"create_subthreads":{"value":true,"source":"1"},"create_sidebars":{"value":true,"source":"1"},"join_thread":{"value":true,"source":"1"},"edit_permissions":{"value":true,"source":"1"},"add_members":{"value":true,"source":"1"},"remove_members":{"value":true,"source":"1"},"change_role":{"value":true,"source":"1"},"leave_thread":{"value":false,"source":null},"react_to_message":{"value":false,"source":null},"edit_message":{"value":false,"source":null}},"isSender":false},{"id":"83809","role":"84016","permissions":{"know_of":{"value":true,"source":"84015"},"membership":{"value":false,"source":null},"visible":{"value":true,"source":"84015"},"voiced":{"value":true,"source":"84015"},"edit_entries":{"value":true,"source":"84015"},"edit_thread":{"value":true,"source":"84015"},"edit_thread_description":{"value":true,"source":"84015"},"edit_thread_color":{"value":true,"source":"84015"},"delete_thread":{"value":false,"source":null},"create_subthreads":{"value":false,"source":null},"create_sidebars":{"value":true,"source":"84015"},"join_thread":{"value":false,"source":null},"edit_permissions":{"value":false,"source":null},"add_members":{"value":false,"source":null},"remove_members":{"value":false,"source":null},"change_role":{"value":false,"source":null},"leave_thread":{"value":false,"source":null},"react_to_message":{"value":true,"source":"84015"},"edit_message":{"value":true,"source":"84015"}},"isSender":true},{"id":"83969","role":"84016","permissions":{"know_of":{"value":true,"source":"84015"},"membership":{"value":false,"source":null},"visible":{"value":true,"source":"84015"},"voiced":{"value":true,"source":"84015"},"edit_entries":{"value":true,"source":"84015"},"edit_thread":{"value":true,"source":"84015"},"edit_thread_description":{"value":true,"source":"84015"},"edit_thread_color":{"value":true,"source":"84015"},"delete_thread":{"value":false,"source":null},"create_subthreads":{"value":false,"source":null},"create_sidebars":{"value":true,"source":"84015"},"join_thread":{"value":false,"source":null},"edit_permissions":{"value":false,"source":null},"add_members":{"value":false,"source":null},"remove_members":{"value":false,"source":null},"change_role":{"value":false,"source":null},"leave_thread":{"value":false,"source":null},"react_to_message":{"value":true,"source":"84015"},"edit_message":{"value":true,"source":"84015"}},"isSender":true}]',
+ '[{"id":"256","role":null,"permissions":{"know_of":{"value":true,"source":"1"},"visible":{"value":true,"source":"1"},"voiced":{"value":true,"source":"1"},"edit_entries":{"value":true,"source":"1"},"edit_thread":{"value":true,"source":"1"},"edit_thread_description":{"value":true,"source":"1"},"edit_thread_color":{"value":true,"source":"1"},"delete_thread":{"value":true,"source":"1"},"create_subthreads":{"value":true,"source":"1"},"create_sidebars":{"value":true,"source":"1"},"join_thread":{"value":true,"source":"1"},"edit_permissions":{"value":true,"source":"1"},"add_members":{"value":true,"source":"1"},"remove_members":{"value":true,"source":"1"},"change_role":{"value":true,"source":"1"},"leave_thread":{"value":false,"source":null},"react_to_message":{"value":false,"source":null},"edit_message":{"value":false,"source":null}},"isSender":false},{"id":"83809","role":"84016","permissions":{"know_of":{"value":true,"source":"84015"},"visible":{"value":true,"source":"84015"},"voiced":{"value":true,"source":"84015"},"edit_entries":{"value":true,"source":"84015"},"edit_thread":{"value":true,"source":"84015"},"edit_thread_description":{"value":true,"source":"84015"},"edit_thread_color":{"value":true,"source":"84015"},"delete_thread":{"value":false,"source":null},"create_subthreads":{"value":false,"source":null},"create_sidebars":{"value":true,"source":"84015"},"join_thread":{"value":false,"source":null},"edit_permissions":{"value":false,"source":null},"add_members":{"value":false,"source":null},"remove_members":{"value":false,"source":null},"change_role":{"value":false,"source":null},"leave_thread":{"value":false,"source":null},"react_to_message":{"value":true,"source":"84015"},"edit_message":{"value":true,"source":"84015"}},"isSender":true},{"id":"83969","role":"84016","permissions":{"know_of":{"value":true,"source":"84015"},"visible":{"value":true,"source":"84015"},"voiced":{"value":true,"source":"84015"},"edit_entries":{"value":true,"source":"84015"},"edit_thread":{"value":true,"source":"84015"},"edit_thread_description":{"value":true,"source":"84015"},"edit_thread_color":{"value":true,"source":"84015"},"delete_thread":{"value":false,"source":null},"create_subthreads":{"value":false,"source":null},"create_sidebars":{"value":true,"source":"84015"},"join_thread":{"value":false,"source":null},"edit_permissions":{"value":false,"source":null},"add_members":{"value":false,"source":null},"remove_members":{"value":false,"source":null},"change_role":{"value":false,"source":null},"leave_thread":{"value":false,"source":null},"react_to_message":{"value":true,"source":"84015"},"edit_message":{"value":true,"source":"84015"}},"isSender":true}]',
roles:
'{"84016":{"id":"84016","name":"Members","permissions":{"know_of":true,"visible":true,"voiced":true,"react_to_message":true,"edit_message":true,"edit_entries":true,"edit_thread":true,"edit_thread_color":true,"edit_thread_description":true,"create_sidebars":true,"descendant_open_know_of":true,"descendant_open_visible":true,"child_open_join_thread":true},"isDefault":true}}',
currentUser:
- '{"role":"84016","permissions":{"know_of":{"value":true,"source":"84015"},"membership":{"value":false,"source":null},"visible":{"value":true,"source":"84015"},"voiced":{"value":true,"source":"84015"},"edit_entries":{"value":true,"source":"84015"},"edit_thread":{"value":true,"source":"84015"},"edit_thread_description":{"value":true,"source":"84015"},"edit_thread_color":{"value":true,"source":"84015"},"delete_thread":{"value":false,"source":null},"create_subthreads":{"value":false,"source":null},"create_sidebars":{"value":true,"source":"84015"},"join_thread":{"value":false,"source":null},"edit_permissions":{"value":false,"source":null},"add_members":{"value":false,"source":null},"remove_members":{"value":false,"source":null},"change_role":{"value":false,"source":null},"leave_thread":{"value":false,"source":null},"react_to_message":{"value":true,"source":"84015"},"edit_message":{"value":true,"source":"84015"}},"subscription":{"home":true,"pushNotifs":true},"unread":false}',
+ '{"role":"84016","permissions":{"know_of":{"value":true,"source":"84015"},"visible":{"value":true,"source":"84015"},"voiced":{"value":true,"source":"84015"},"edit_entries":{"value":true,"source":"84015"},"edit_thread":{"value":true,"source":"84015"},"edit_thread_description":{"value":true,"source":"84015"},"edit_thread_color":{"value":true,"source":"84015"},"delete_thread":{"value":false,"source":null},"create_subthreads":{"value":false,"source":null},"create_sidebars":{"value":true,"source":"84015"},"join_thread":{"value":false,"source":null},"edit_permissions":{"value":false,"source":null},"add_members":{"value":false,"source":null},"remove_members":{"value":false,"source":null},"change_role":{"value":false,"source":null},"leave_thread":{"value":false,"source":null},"react_to_message":{"value":true,"source":"84015"},"edit_message":{"value":true,"source":"84015"}},"subscription":{"home":true,"pushNotifs":true},"unread":false}',
repliesCount: 0,
containingThreadID: '1',
community: '1',
diff --git a/native/redux/update-roles-and-permissions-test-data.js b/native/redux/update-roles-and-permissions-test-data.js
--- a/native/redux/update-roles-and-permissions-test-data.js
+++ b/native/redux/update-roles-and-permissions-test-data.js
@@ -74,10 +74,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -174,10 +170,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '1',
value: true,
@@ -265,10 +257,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -422,10 +410,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84596',
value: true,
@@ -522,10 +506,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -613,10 +593,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84596',
value: true,
@@ -735,10 +711,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84598',
value: true,
@@ -834,10 +806,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84598',
value: true,
@@ -925,10 +893,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84598',
value: true,
@@ -1048,10 +1012,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84627',
value: true,
@@ -1147,10 +1107,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -1238,10 +1194,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84627',
value: true,
@@ -1329,10 +1281,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84627',
value: true,
@@ -1452,10 +1400,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84656',
value: true,
@@ -1551,10 +1495,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -1642,10 +1582,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84656',
value: true,
@@ -1733,10 +1669,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84656',
value: true,
@@ -1824,10 +1756,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84656',
value: true,
@@ -1954,10 +1882,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '86071',
value: true,
@@ -2053,10 +1977,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -2144,10 +2064,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '86071',
value: true,
@@ -2235,10 +2151,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '86071',
value: true,
@@ -2358,10 +2270,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87789',
value: true,
@@ -2457,10 +2365,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -2548,10 +2452,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -2639,10 +2539,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87789',
value: true,
@@ -2730,10 +2626,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87789',
value: true,
@@ -2860,10 +2752,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87817',
value: true,
@@ -2959,10 +2847,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -3050,10 +2934,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -3141,10 +3021,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87817',
value: true,
@@ -3232,10 +3108,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87817',
value: true,
@@ -3362,10 +3234,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87837',
value: true,
@@ -3461,10 +3329,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -3552,10 +3416,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87837',
value: true,
@@ -3643,10 +3503,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87837',
value: true,
@@ -3770,10 +3626,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -3870,10 +3722,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '1',
value: true,
@@ -3961,10 +3809,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -4076,10 +3920,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84596',
value: true,
@@ -4176,10 +4016,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -4267,10 +4103,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84596',
value: true,
@@ -4376,10 +4208,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84598',
value: true,
@@ -4475,10 +4303,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84598',
value: true,
@@ -4566,10 +4390,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84598',
value: true,
@@ -4675,10 +4495,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84627',
value: true,
@@ -4774,10 +4590,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -4865,10 +4677,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84627',
value: true,
@@ -4956,10 +4764,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84627',
value: true,
@@ -5065,10 +4869,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84656',
value: true,
@@ -5164,10 +4964,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -5255,10 +5051,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84656',
value: true,
@@ -5346,10 +5138,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84656',
value: true,
@@ -5437,10 +5225,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84656',
value: true,
@@ -5546,10 +5330,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '86071',
value: true,
@@ -5645,10 +5425,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -5736,10 +5512,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '86071',
value: true,
@@ -5827,10 +5599,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '86071',
value: true,
@@ -5936,10 +5704,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87789',
value: true,
@@ -6035,10 +5799,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -6126,10 +5886,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -6217,10 +5973,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87789',
value: true,
@@ -6308,10 +6060,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87789',
value: true,
@@ -6417,10 +6165,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87817',
value: true,
@@ -6516,10 +6260,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -6607,10 +6347,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -6698,10 +6434,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87817',
value: true,
@@ -6789,10 +6521,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87817',
value: true,
@@ -6898,10 +6626,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87837',
value: true,
@@ -6997,10 +6721,6 @@
source: '1',
value: true,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -7088,10 +6808,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87837',
value: true,
@@ -7179,10 +6895,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87837',
value: true,
@@ -7296,10 +7008,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: null,
value: false,
@@ -7432,10 +7140,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84596',
value: true,
@@ -7562,10 +7266,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84598',
value: true,
@@ -7691,10 +7391,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84627',
value: true,
@@ -7826,10 +7522,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '84656',
value: true,
@@ -7967,10 +7659,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '86071',
value: true,
@@ -8102,10 +7790,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87789',
value: true,
@@ -8243,10 +7927,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87817',
value: true,
@@ -8384,10 +8064,6 @@
source: null,
value: false,
},
- membership: {
- source: null,
- value: false,
- },
react_to_message: {
source: '87837',
value: true,

File Metadata

Mime Type
text/plain
Expires
Sun, Oct 6, 8:25 AM (21 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2248541
Default Alt Text
D9549.diff (39 KB)

Event Timeline