Unwrap removeIdentityKey from calls to saveIdentity

saveIdentity is now reponsible for determining firstUse, so we must not remove
the existing key before updating it.

Previously, the implementation provided an extra check against overwritting an
existing key, but that should be done via isTrustedIdentity instead.

// FREEBIE
pull/749/head
lilia 8 years ago committed by Scott Nonnenberg
parent 82469713d2
commit 3ca511a10a

@ -504,26 +504,24 @@
throw 'No conflicts to resolve'; throw 'No conflicts to resolve';
} }
return textsecure.storage.protocol.removeIdentityKey(number).then(function() { return textsecure.storage.protocol.saveIdentity(number, identityKey).then(function() {
return textsecure.storage.protocol.saveIdentity(number, identityKey).then(function() { var promise = Promise.resolve();
var promise = Promise.resolve(); var conflicts = this.messageCollection.filter(function(message) {
var conflicts = this.messageCollection.filter(function(message) { return message.hasKeyConflict(number);
return message.hasKeyConflict(number); });
}); // group incoming & outgoing
// group incoming & outgoing conflicts = _.groupBy(conflicts, function(m) { return m.get('type'); });
conflicts = _.groupBy(conflicts, function(m) { return m.get('type'); }); // sort each group by date and concatenate outgoing after incoming
// sort each group by date and concatenate outgoing after incoming conflicts = _.flatten([
conflicts = _.flatten([ _.sortBy(conflicts.incoming, function(m) { return m.get('received_at'); }),
_.sortBy(conflicts.incoming, function(m) { return m.get('received_at'); }), _.sortBy(conflicts.outgoing, function(m) { return m.get('received_at'); }),
_.sortBy(conflicts.outgoing, function(m) { return m.get('received_at'); }), ]).forEach(function(message) {
]).forEach(function(message) { var resolveConflict = function() {
var resolveConflict = function() { return message.resolveConflict(number);
return message.resolveConflict(number); };
}; promise = promise.then(resolveConflict, resolveConflict);
promise = promise.then(resolveConflict, resolveConflict); });
}); return promise;
return promise;
}.bind(this));
}.bind(this)); }.bind(this));
}, },
notify: function(message) { notify: function(message) {

@ -293,12 +293,10 @@
if (!oldpublicKey || equalArrayBuffers(oldpublicKey, publicKey)) { if (!oldpublicKey || equalArrayBuffers(oldpublicKey, publicKey)) {
resolve(true); resolve(true);
} else if (!storage.get('safety-numbers-approval', true)) { } else if (!storage.get('safety-numbers-approval', true)) {
this.removeIdentityKey(identifier).then(function() { this.saveIdentity(identifier, publicKey).then(function() {
this.saveIdentity(identifier, publicKey).then(function() { console.log('Key changed for', identifier);
console.log('Key changed for', identifier); this.trigger('keychange', identifier);
this.trigger('keychange', identifier); resolve(true);
resolve(true);
}.bind(this));
}.bind(this)); }.bind(this));
} else { } else {
resolve(false); resolve(false);

Loading…
Cancel
Save