Profile fetches shouldn't drop our own profile key

Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
This commit is contained in:
automated-signal 2022-03-15 13:24:23 -07:00 committed by GitHub
parent 34433f63e3
commit 36bb201537
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 6 deletions

View File

@ -131,7 +131,9 @@ async function doGetProfile(c: ConversationModel): Promise<void> {
throw error;
}
if (error.code === 401 || error.code === 403) {
await c.setProfileKey(undefined);
if (!isMe(c.attributes)) {
await c.setProfileKey(undefined);
}
// Retry fetch using last known profileKeyVersion or fetch
// unversioned profile.
@ -306,7 +308,9 @@ async function doGetProfile(c: ConversationModel): Promise<void> {
log.warn(
`getProfile: Got 401/403 when using accessKey for ${idForLogging}, removing profileKey`
);
c.setProfileKey(undefined);
if (!isMe(c.attributes)) {
await c.setProfileKey(undefined);
}
}
if (c.get('sealedSender') === SEALED_SENDER.UNKNOWN) {
log.warn(
@ -363,11 +367,8 @@ async function doGetProfile(c: ConversationModel): Promise<void> {
if (error instanceof HTTPError) {
if (error.code === 403 || error.code === 404) {
log.warn(
`getProfile: clearing profile avatar for conversation ${idForLogging}`
`getProfile: profile avatar is missing for conversation ${idForLogging}`
);
c.set({
profileAvatar: null,
});
}
} else {
log.warn(