mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-08 05:54:59 -04:00
Use notification levels in power_levels
Rather than making the condition directly require a specific power level. This way the level require to notify a room can be configured per room.
This commit is contained in:
parent
c9f034b4ac
commit
0f1eb3e914
3 changed files with 22 additions and 12 deletions
|
@ -113,7 +113,7 @@ class BulkPushRuleEvaluator(object):
|
|||
)
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def _get_sender_power_level(self, event, context):
|
||||
def _get_power_levels_and_sender_level(self, event, context):
|
||||
pl_event_id = context.prev_state_ids.get(POWER_KEY)
|
||||
if pl_event_id:
|
||||
# fastpath: if there's a power level event, that's all we need, and
|
||||
|
@ -129,7 +129,9 @@ class BulkPushRuleEvaluator(object):
|
|||
(e.type, e.state_key): e for e in auth_events.itervalues()
|
||||
}
|
||||
|
||||
defer.returnValue(get_user_power_level(event.sender, auth_events))
|
||||
sender_level = get_user_power_level(event.sender, auth_events)
|
||||
|
||||
defer.returnValue((auth_events[POWER_KEY].content, sender_level))
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def action_for_event_by_user(self, event, context):
|
||||
|
@ -146,10 +148,10 @@ class BulkPushRuleEvaluator(object):
|
|||
event, context
|
||||
)
|
||||
|
||||
sender_power_level = yield self._get_sender_power_level(event, context)
|
||||
(power_levels, sender_power_level) = yield self._get_power_levels_and_sender_level(event, context)
|
||||
|
||||
evaluator = PushRuleEvaluatorForEvent(
|
||||
event, len(room_members), sender_power_level
|
||||
event, len(room_members), sender_power_level, power_levels,
|
||||
)
|
||||
|
||||
condition_cache = {}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue