state-res: Refactor Knock membership transition
This commit is contained in:
parent
f24cae17f5
commit
a8f1440698
@ -700,21 +700,20 @@ fn valid_membership_change(
|
|||||||
{
|
{
|
||||||
warn!("Join rule is not set to knock or knock_restricted, knocking is not allowed");
|
warn!("Join rule is not set to knock or knock_restricted, knocking is not allowed");
|
||||||
false
|
false
|
||||||
} else {
|
} else if sender != target_user {
|
||||||
// 2. If `sender` does not match `state_key`, reject.
|
// 2. If `sender` does not match `state_key`, reject.
|
||||||
// 3. If the `sender`'s current membership is not `ban`, `invite`, or `join`, allow.
|
|
||||||
// 4. Otherwise, reject.
|
|
||||||
if sender != target_user {
|
|
||||||
warn!(
|
warn!(
|
||||||
?sender,
|
?sender,
|
||||||
?target_user,
|
?target_user,
|
||||||
"Can't make another user join, sender did not match target"
|
"Can't make another user knock, sender did not match target"
|
||||||
);
|
);
|
||||||
false
|
false
|
||||||
} else if matches!(
|
} else if matches!(
|
||||||
sender_membership,
|
sender_membership,
|
||||||
MembershipState::Ban | MembershipState::Invite | MembershipState::Join
|
MembershipState::Ban | MembershipState::Invite | MembershipState::Join
|
||||||
) {
|
) {
|
||||||
|
// 3. If the `sender`'s current membership is not `ban`, `invite`, or `join`, allow.
|
||||||
|
// 4. Otherwise, reject.
|
||||||
warn!(
|
warn!(
|
||||||
?target_user_membership_event_id,
|
?target_user_membership_event_id,
|
||||||
"Membership state of ban, invite or join are invalid",
|
"Membership state of ban, invite or join are invalid",
|
||||||
@ -724,7 +723,6 @@ fn valid_membership_change(
|
|||||||
true
|
true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
_ => {
|
_ => {
|
||||||
warn!("Unknown membership transition");
|
warn!("Unknown membership transition");
|
||||||
false
|
false
|
||||||
|
Loading…
x
Reference in New Issue
Block a user