mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 12:16:09 -04:00
Rename key and values for m.room.history_visibility. Support 'invited' value
This commit is contained in:
parent
c3e2600c67
commit
fb47c3cfbe
4 changed files with 61 additions and 24 deletions
|
@ -306,16 +306,31 @@ class SyncHandler(BaseHandler):
|
|||
if event.type == EventTypes.RoomHistoryVisibility:
|
||||
return True
|
||||
|
||||
membership = state.get((EventTypes.Member, user_id), None)
|
||||
if membership and membership.membership == Membership.JOIN:
|
||||
membership_ev = state.get((EventTypes.Member, user_id), None)
|
||||
if membership_ev:
|
||||
membership = membership_ev.membership
|
||||
else:
|
||||
membership = Membership.LEAVE
|
||||
|
||||
if membership == Membership.JOIN:
|
||||
return True
|
||||
|
||||
history = state.get((EventTypes.RoomHistoryVisibility, ''), None)
|
||||
if history and history.content.get("visibility", None) == "after_join":
|
||||
return False
|
||||
if history:
|
||||
visibility = history.content.get("history_visibility", "shared")
|
||||
else:
|
||||
visibility = "shared"
|
||||
|
||||
if visibility == "public":
|
||||
return True
|
||||
elif visibility == "shared":
|
||||
return True
|
||||
elif visibility == "joined":
|
||||
return membership == Membership.JOIN
|
||||
elif visibility == "invited":
|
||||
return membership == Membership.INVITE
|
||||
|
||||
return True
|
||||
|
||||
events_and_states = filter(allowed, events_and_states)
|
||||
defer.returnValue([
|
||||
ev
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue