From a245595bc5eafc44e27700541c3d63f480c954e6 Mon Sep 17 00:00:00 2001 From: Ryan ZHAO Date: Tue, 18 Feb 2020 14:01:48 +1100 Subject: [PATCH] use master public key instead of user public key when adding self as a member and an admin --- .../src/Loki/View Controllers/NewClosedGroupVC.swift | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Signal/src/Loki/View Controllers/NewClosedGroupVC.swift b/Signal/src/Loki/View Controllers/NewClosedGroupVC.swift index 260ddc304..6d9159b52 100644 --- a/Signal/src/Loki/View Controllers/NewClosedGroupVC.swift +++ b/Signal/src/Loki/View Controllers/NewClosedGroupVC.swift @@ -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)