Page MenuHomePhabricator

D10188.id34280.diff
No OneTemporary

D10188.id34280.diff

diff --git a/keyserver/src/push/crypto.js b/keyserver/src/push/crypto.js
--- a/keyserver/src/push/crypto.js
+++ b/keyserver/src/push/crypto.js
@@ -35,7 +35,8 @@
}> {
invariant(
!notification.collapseId,
- 'Collapsible notifications encryption currently not implemented',
+ `Collapse ID can't be directly stored in apn.Notification object due ` +
+ `to security reasons. Please put it in payload property`,
);
const encryptedNotification = new apn.Notification();
diff --git a/keyserver/src/push/send.js b/keyserver/src/push/send.js
--- a/keyserver/src/push/send.js
+++ b/keyserver/src/push/send.js
@@ -913,7 +913,7 @@
platformDetails,
} = convertedData;
- const canDecryptNonCollapsibleTextNotifs =
+ const canDecryptNonCollapsibleTextIOSNotifs =
platformDetails.codeVersion && platformDetails.codeVersion > 222;
const isNonCollapsibleTextNotification =
@@ -921,13 +921,14 @@
newRawMessageInfo => newRawMessageInfo.type === messageTypes.TEXT,
) && !collapseKey;
- const canDecryptAllNotifTypes =
+ const canDecryptAllIOSNotifs =
platformDetails.codeVersion && platformDetails.codeVersion >= 267;
- const canDecryptIOSNotifs =
+ const canDecryptIOSNotif =
platformDetails.platform === 'ios' &&
- (canDecryptAllNotifTypes ||
- (isNonCollapsibleTextNotification && canDecryptNonCollapsibleTextNotifs));
+ (canDecryptAllIOSNotifs ||
+ (isNonCollapsibleTextNotification &&
+ canDecryptNonCollapsibleTextIOSNotifs));
const isStaffOrDev = isStaff(userID) || isDev;
const canDecryptMacOSNotifs =
@@ -938,7 +939,7 @@
majorDesktop: 9,
});
- const shouldBeEncrypted = canDecryptIOSNotifs || canDecryptMacOSNotifs;
+ const shouldBeEncrypted = canDecryptIOSNotif || canDecryptMacOSNotifs;
const uniqueID = uuidv4();
const notification = new apn.Notification();
@@ -967,7 +968,7 @@
if (platformDetails.codeVersion && platformDetails.codeVersion > 198) {
notification.mutableContent = true;
}
- if (collapseKey && canDecryptAllNotifTypes) {
+ if (collapseKey && (canDecryptAllIOSNotifs || canDecryptMacOSNotifs)) {
notification.payload.collapseID = collapseKey;
} else if (collapseKey) {
notification.collapseId = collapseKey;

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 22, 4:49 AM (2 h, 55 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2560013
Default Alt Text
D10188.id34280.diff (2 KB)

Event Timeline