diff --git a/keyserver/src/updaters/thread-permission-updaters.js b/keyserver/src/updaters/thread-permission-updaters.js --- a/keyserver/src/updaters/thread-permission-updaters.js +++ b/keyserver/src/updaters/thread-permission-updaters.js @@ -60,6 +60,7 @@ +role: string, +oldRole: string, +unread?: boolean, + +setSubcriptionToBackground?: boolean, }; type MembershipRowToDelete = { +operation: 'delete', @@ -81,6 +82,7 @@ type ChangeRoleOptions = { +setNewMembersToUnread?: boolean, +forcePermissionRecalculation?: boolean, + +setSubcriptionToBackground?: boolean, }; type ChangeRoleMemberInfo = { permissionsFromParent?: ?ThreadPermissionsBlob, @@ -101,6 +103,7 @@ const setNewMembersToUnread = options?.setNewMembersToUnread && intent === 'join'; const forcePermissionRecalculation = options?.forcePermissionRecalculation; + const setSubcriptionToBackground = options?.setSubcriptionToBackground; if (userIDs.length === 0) { return { @@ -291,6 +294,7 @@ role: newRole, oldRole, unread: userBecameMember && setNewMembersToUnread, + setSubcriptionToBackground: setSubcriptionToBackground, }); } else { membershipRows.push({ @@ -934,9 +938,9 @@ rowToSave.threadID, rowToSave.role, time, - rowToSave.intent === 'join' - ? joinSubscriptionString - : defaultSubscriptionString, + rowToSave.intent !== 'join' || rowToSave.setSubcriptionToBackground + ? defaultSubscriptionString + : joinSubscriptionString, rowToSave.permissions ? JSON.stringify(rowToSave.permissions) : null, rowToSave.permissionsForChildren ? JSON.stringify(rowToSave.permissionsForChildren)