Paid Messages Privacy: Fix user settings update (#5843)
This commit is contained in:
parent
003c697526
commit
185a42be5d
@ -525,6 +525,21 @@ addActionHandler('setPrivacySettings', async (global, actions, payload): Promise
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (privacyKey === 'noPaidMessages') {
|
||||||
|
global = getGlobal();
|
||||||
|
const idsForUpdate = [
|
||||||
|
...updatedIds.filter((id) => !settings.allowUserIds.includes(id)),
|
||||||
|
...settings.allowUserIds.filter((id) => !updatedIds.includes(id)),
|
||||||
|
];
|
||||||
|
|
||||||
|
idsForUpdate.forEach((userId) => {
|
||||||
|
global = updateUserFullInfo(global, userId, {
|
||||||
|
settings: undefined,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
setGlobal(global);
|
||||||
|
}
|
||||||
|
|
||||||
const rules = buildApiInputPrivacyRules(global, {
|
const rules = buildApiInputPrivacyRules(global, {
|
||||||
visibility: settings.visibility,
|
visibility: settings.visibility,
|
||||||
isUnspecified: settings.isUnspecified,
|
isUnspecified: settings.isUnspecified,
|
||||||
@ -705,6 +720,10 @@ addActionHandler('updateGlobalPrivacySettings', async (global, actions, payload)
|
|||||||
const nonContactPeersPaidStars = payload.nonContactPeersPaidStars === null ? undefined
|
const nonContactPeersPaidStars = payload.nonContactPeersPaidStars === null ? undefined
|
||||||
: payload.nonContactPeersPaidStars || global.settings.byKey.nonContactPeersPaidStars;
|
: payload.nonContactPeersPaidStars || global.settings.byKey.nonContactPeersPaidStars;
|
||||||
|
|
||||||
|
// eslint-disable-next-line no-null/no-null
|
||||||
|
const shouldUpdateUsersSettings = (payload.nonContactPeersPaidStars === null)
|
||||||
|
|| payload.nonContactPeersPaidStars;
|
||||||
|
|
||||||
global = getGlobal();
|
global = getGlobal();
|
||||||
global = replaceSettings(global, {
|
global = replaceSettings(global, {
|
||||||
shouldArchiveAndMuteNewNonContact,
|
shouldArchiveAndMuteNewNonContact,
|
||||||
@ -734,6 +753,15 @@ addActionHandler('updateGlobalPrivacySettings', async (global, actions, payload)
|
|||||||
? undefined
|
? undefined
|
||||||
: result.nonContactPeersPaidStars,
|
: result.nonContactPeersPaidStars,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (shouldUpdateUsersSettings) {
|
||||||
|
Object.keys(global.users.fullInfoById).forEach((userId) => {
|
||||||
|
global = updateUserFullInfo(global, userId, {
|
||||||
|
settings: undefined,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
setGlobal(global);
|
setGlobal(global);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user