Auto-accept group requests from trusted contacts

This commit is contained in:
Nora Trapp 2020-02-25 11:23:55 -08:00 committed by Michael Kirk
parent e5fd0f5d5d
commit 74ed52e261

View File

@ -543,14 +543,22 @@ public class GroupManager: NSObject {
} else {
// This thread didn't previously exist, so if we're a member we
// have to assume we were just added.
var wasAddedToGroup = false
if let localAddress = tsAccountManager.localAddress, groupModel.groupMembers.contains(localAddress) {
groupModel.addedByAddress = groupUpdateSourceAddress
wasAddedToGroup = true
}
// GroupsV2 TODO: Can we use upsertGroupThread(...) here and above?
let thread = TSGroupThread(groupModelPrivate: groupModel)
thread.anyInsert(transaction: transaction)
// Auto-accept the message request for this group if we were added by someone we trust.
if wasAddedToGroup, let addedByAddress = groupUpdateSourceAddress,
profileManager.isUser(inProfileWhitelist: addedByAddress, transaction: transaction) {
profileManager.addGroupId(toProfileWhitelist: groupModel.groupId, wasLocallyInitiated: true, transaction: transaction)
}
if createInfoMessageForNewGroups {
var userInfo: [InfoMessageUserInfoKey: Any] = [
.newGroupModel: groupModel
@ -610,6 +618,12 @@ public class GroupManager: NSObject {
// triggered this update added us to the group.
if !oldGroupModel.groupMembers.contains(localAddress), newGroupModel.groupMembers.contains(localAddress) {
newGroupModel.addedByAddress = groupUpdateSourceAddress
// Auto-accept the message request for this group if we were added by someone we trust.
if let addedByAddress = groupUpdateSourceAddress,
profileManager.isUser(inProfileWhitelist: addedByAddress, transaction: transaction) {
profileManager.addGroupId(toProfileWhitelist: newGroupModel.groupId, wasLocallyInitiated: true, transaction: transaction)
}
}
var userInfo: [InfoMessageUserInfoKey: Any] = [