Only accept 'you left group' messages when group blocked

This commit is contained in:
Scott Nonnenberg 2018-09-17 15:58:27 -07:00
parent c2e0ec5636
commit 814b9cf26a
2 changed files with 12 additions and 6 deletions

View file

@ -920,9 +920,9 @@
updates.left = true;
}
if (details.blocked === true) {
if (details.blocked) {
storage.addBlockedGroup(id);
} else if (details.blocked === false) {
} else {
storage.removeBlockedGroup(id);
}

View file

@ -730,9 +730,12 @@ MessageReceiver.prototype.extend({
const groupId = message.group && message.group.id;
const isBlocked = this.isGroupBlocked(groupId);
const isMe = envelope.source === textsecure.storage.user.getNumber();
const hasGroupMetadata = Boolean(message.group);
const isLeavingGroup = Boolean(
message.group &&
message.group.type === textsecure.protobuf.GroupContext.Type.QUIT
);
if (groupId && isBlocked && !(isMe && hasGroupMetadata)) {
if (groupId && isBlocked && !(isMe && isLeavingGroup)) {
window.log.warn(
`Message ${this.getEnvelopeId(
envelope
@ -768,9 +771,12 @@ MessageReceiver.prototype.extend({
const groupId = message.group && message.group.id;
const isBlocked = this.isGroupBlocked(groupId);
const isMe = envelope.source === textsecure.storage.user.getNumber();
const hasGroupMetadata = Boolean(message.group);
const isLeavingGroup = Boolean(
message.group &&
message.group.type === textsecure.protobuf.GroupContext.Type.QUIT
);
if (groupId && isBlocked && !(isMe && hasGroupMetadata)) {
if (groupId && isBlocked && !(isMe && isLeavingGroup)) {
window.log.warn(
`Message ${this.getEnvelopeId(
envelope