|
|
@ -1,21 +1,36 @@
|
|
|
|
Room History Visibility
|
|
|
|
Room History Visibility
|
|
|
|
-----------------------
|
|
|
|
=======================
|
|
|
|
|
|
|
|
|
|
|
|
.. _module:history-visibility:
|
|
|
|
.. _module:history-visibility:
|
|
|
|
|
|
|
|
|
|
|
|
Whether a member of a room can see the events that happened in a room from
|
|
|
|
This module adds support for controlling the visibility of previous events in a
|
|
|
|
before they joined the room is controlled by the ``history_visibility`` key
|
|
|
|
room. Whether a member of a room can see the events that happened in a room from
|
|
|
|
of the ``m.room.history_visibility`` state event. The valid values for
|
|
|
|
before they joined the room is controlled by the ``m.room.history_visibility``
|
|
|
|
``history_visibility`` are:
|
|
|
|
event outlined below. Visibility can take the form of one of three options:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- ``shared`` - Previous events are always shown to newly joined members.
|
|
|
|
|
|
|
|
- ``invited`` - Previous events are shown to newly joined members from the point
|
|
|
|
|
|
|
|
they were invited onwards.
|
|
|
|
|
|
|
|
- ``joined`` - Previous events are shown to newly joined members from the point
|
|
|
|
|
|
|
|
they joined the room onwards.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Events
|
|
|
|
|
|
|
|
------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{{m_room_history_visibility_event}}
|
|
|
|
|
|
|
|
|
|
|
|
- ``shared``
|
|
|
|
Client behaviour
|
|
|
|
- ``invited``
|
|
|
|
----------------
|
|
|
|
- ``joined``
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
By default if no ``history_visibility`` is set it is assumed to be ``shared``.
|
|
|
|
Clients that implement this module MUST present to the user the possible options
|
|
|
|
|
|
|
|
for setting history visibility when creating a room.
|
|
|
|
|
|
|
|
|
|
|
|
The rules governing whether a user is allowed to see an event depend solely on
|
|
|
|
Server behaviour
|
|
|
|
the state of the room at that event:
|
|
|
|
----------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
By default if no ``history_visibility`` is set the visibility is assumed to be
|
|
|
|
|
|
|
|
``shared``. The rules governing whether a user is allowed to see an event depend
|
|
|
|
|
|
|
|
solely on the state of the room *at that event*:
|
|
|
|
|
|
|
|
|
|
|
|
1. If the user was joined, allow.
|
|
|
|
1. If the user was joined, allow.
|
|
|
|
2. If the user was invited and the ``history_visibility`` was set to
|
|
|
|
2. If the user was invited and the ``history_visibility`` was set to
|
|
|
@ -24,3 +39,10 @@ the state of the room at that event:
|
|
|
|
was set to ``shared``, allow.
|
|
|
|
was set to ``shared``, allow.
|
|
|
|
4. Otherwise, deny.
|
|
|
|
4. Otherwise, deny.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Security considerations
|
|
|
|
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The default value for ``history_visibility`` is ``shared`` for
|
|
|
|
|
|
|
|
backwards-compatibility reasons. Clients need to be aware that by not setting
|
|
|
|
|
|
|
|
this event they are exposing all of their room history to anyone in the room.
|
|
|
|
|
|
|
|
|
|
|
|