dendrite/internal/pushrules/default_underride.go
Till f47515e38b
Pushrule tweaks, make pattern non-optional on EventMatchCondition (#2918)
This should fix https://github.com/matrix-org/dendrite/issues/2882
(Tested with FluffyChat 1.7.1)
Also adds tests that the predefined push rules (as per the spec) is what
we have in Dendrite.
2022-12-23 12:52:47 +01:00

119 lines
2.3 KiB
Go

package pushrules
const (
MRuleCall = ".m.rule.call"
MRuleEncryptedRoomOneToOne = ".m.rule.encrypted_room_one_to_one"
MRuleRoomOneToOne = ".m.rule.room_one_to_one"
MRuleMessage = ".m.rule.message"
MRuleEncrypted = ".m.rule.encrypted"
)
var defaultUnderrideRules = []*Rule{
&mRuleCallDefinition,
&mRuleRoomOneToOneDefinition,
&mRuleEncryptedRoomOneToOneDefinition,
&mRuleMessageDefinition,
&mRuleEncryptedDefinition,
}
var (
mRuleCallDefinition = Rule{
RuleID: MRuleCall,
Default: true,
Enabled: true,
Conditions: []*Condition{
{
Kind: EventMatchCondition,
Key: "type",
Pattern: pointer("m.call.invite"),
},
},
Actions: []*Action{
{Kind: NotifyAction},
{
Kind: SetTweakAction,
Tweak: SoundTweak,
Value: "ring",
},
},
}
mRuleEncryptedRoomOneToOneDefinition = Rule{
RuleID: MRuleEncryptedRoomOneToOne,
Default: true,
Enabled: true,
Conditions: []*Condition{
{
Kind: RoomMemberCountCondition,
Is: "2",
},
{
Kind: EventMatchCondition,
Key: "type",
Pattern: pointer("m.room.encrypted"),
},
},
Actions: []*Action{
{Kind: NotifyAction},
{
Kind: SetTweakAction,
Tweak: SoundTweak,
Value: "default",
},
},
}
mRuleRoomOneToOneDefinition = Rule{
RuleID: MRuleRoomOneToOne,
Default: true,
Enabled: true,
Conditions: []*Condition{
{
Kind: RoomMemberCountCondition,
Is: "2",
},
{
Kind: EventMatchCondition,
Key: "type",
Pattern: pointer("m.room.message"),
},
},
Actions: []*Action{
{Kind: NotifyAction},
{
Kind: SetTweakAction,
Tweak: SoundTweak,
Value: "default",
},
},
}
mRuleMessageDefinition = Rule{
RuleID: MRuleMessage,
Default: true,
Enabled: true,
Conditions: []*Condition{
{
Kind: EventMatchCondition,
Key: "type",
Pattern: pointer("m.room.message"),
},
},
Actions: []*Action{
{Kind: NotifyAction},
},
}
mRuleEncryptedDefinition = Rule{
RuleID: MRuleEncrypted,
Default: true,
Enabled: true,
Conditions: []*Condition{
{
Kind: EventMatchCondition,
Key: "type",
Pattern: pointer("m.room.encrypted"),
},
},
Actions: []*Action{
{Kind: NotifyAction},
},
}
)