Refine SenderID/UserID usage for push rules

This commit is contained in:
Devon Hudson 2023-06-02 15:01:58 -06:00
parent d81b63f556
commit 26ef0246e8
No known key found for this signature in database
GPG key ID: CD06B18E77F6A628
2 changed files with 7 additions and 3 deletions

View file

@ -113,7 +113,11 @@ func ruleMatches(rule *Rule, kind Kind, event gomatrixserverlib.PDU, ec Evaluati
return rule.RuleID == event.RoomID(), nil return rule.RuleID == event.RoomID(), nil
case SenderKind: case SenderKind:
return rule.RuleID == event.SenderID(), nil sender, err := event.UserID()
if err != nil {
return false, nil
}
return rule.RuleID == sender.String(), nil
default: default:
return false, nil return false, nil

View file

@ -682,7 +682,7 @@ func (rse *ruleSetEvalContext) UserDisplayName() string { return rse.mem.Display
func (rse *ruleSetEvalContext) RoomMemberCount() (int, error) { return rse.roomSize, nil } func (rse *ruleSetEvalContext) RoomMemberCount() (int, error) { return rse.roomSize, nil }
func (rse *ruleSetEvalContext) HasPowerLevel(userID, levelKey string) (bool, error) { func (rse *ruleSetEvalContext) HasPowerLevel(senderID, levelKey string) (bool, error) {
req := &rsapi.QueryLatestEventsAndStateRequest{ req := &rsapi.QueryLatestEventsAndStateRequest{
RoomID: rse.roomID, RoomID: rse.roomID,
StateToFetch: []gomatrixserverlib.StateKeyTuple{ StateToFetch: []gomatrixserverlib.StateKeyTuple{
@ -702,7 +702,7 @@ func (rse *ruleSetEvalContext) HasPowerLevel(userID, levelKey string) (bool, err
if err != nil { if err != nil {
return false, err return false, err
} }
return plc.UserLevel(userID) >= plc.NotificationLevel(levelKey), nil return plc.UserLevel(senderID) >= plc.NotificationLevel(levelKey), nil
} }
return true, nil return true, nil
} }