events: Restrict what counts as MembershipChange::ProfileChanged

This commit is contained in:
Jonas Platte 2023-01-26 11:25:09 +01:00
parent 69337d1f4e
commit bf4520a2a9
No known key found for this signature in database
GPG Key ID: AAA7A61F696C3E0C

View File

@ -131,10 +131,17 @@ pub(super) fn membership_change<'a>(
| (St::Join, St::Knock) | (St::Join, St::Knock)
| (St::Ban, St::Knock) | (St::Ban, St::Knock)
| (St::Knock, St::Join) => Ch::Error, | (St::Knock, St::Join) => Ch::Error,
(St::Join, St::Join) => Ch::ProfileChanged { (St::Join, St::Join)
if sender == state_key
&& (prev_details.displayname != details.displayname
|| prev_details.avatar_url != details.avatar_url) =>
{
Ch::ProfileChanged {
displayname_change: Change::new(prev_details.displayname, details.displayname), displayname_change: Change::new(prev_details.displayname, details.displayname),
avatar_url_change: Change::new(prev_details.avatar_url, details.avatar_url), avatar_url_change: Change::new(prev_details.avatar_url, details.avatar_url),
}, }
}
(St::Join, St::Join) => Ch::None,
(St::Join, St::Leave) if sender == state_key => Ch::Left, (St::Join, St::Leave) if sender == state_key => Ch::Left,
(St::Join, St::Leave) => Ch::Kicked, (St::Join, St::Leave) => Ch::Kicked,
(St::Join, St::Ban) => Ch::KickedAndBanned, (St::Join, St::Ban) => Ch::KickedAndBanned,