use master public key instead of user public key when adding self as a member and an admin

This commit is contained in:
Ryan ZHAO 2020-02-18 14:01:48 +11:00
parent b206f2944e
commit a245595bc5

View file

@ -168,11 +168,14 @@ final class NewClosedGroupVC : UIViewController, UITableViewDataSource, UITableV
return showError(title: NSLocalizedString("A closed group cannot have more than 10 members", comment: ""))
}
let userHexEncodedPublicKey = getUserHexEncodedPublicKey()
let members = [String](selectedContacts) + [ userHexEncodedPublicKey ]
var admins: [String]!
OWSPrimaryStorage.shared().dbReadConnection.readWrite { transaction in
admins = Array(LokiDatabaseUtilities.getLinkedDeviceHexEncodedPublicKeys(for: userHexEncodedPublicKey, in: transaction))
let storage = OWSPrimaryStorage.shared()
var masterHexEncodedPublicKey = ""
storage.dbReadConnection.readWrite { transaction in
masterHexEncodedPublicKey = storage.getMasterHexEncodedPublicKey(for: userHexEncodedPublicKey, in: transaction) ?? userHexEncodedPublicKey
}
let members = [String](selectedContacts) + [ masterHexEncodedPublicKey ]
let admins = [ masterHexEncodedPublicKey ]
let groupID = LKGroupUtilities.getEncodedClosedGroupIDAsData(Randomness.generateRandomBytes(kGroupIdLength)!.toHexString())
let group = TSGroupModel(title: name, memberIds: members, image: nil, groupId: groupID, groupType: .closedGroup, adminIds: admins)
let thread = TSGroupThread.getOrCreateThread(with: group)