Private
Readonly
clientAdd a new rule.
The event id for the new rule.
The scope for this rule.
The entity covered by this rule. Globs are supported.
A human-readable reason for introducing this new rule.
Add a new room to the list of sources. If the user isn't a member of the room, attempt to join it.
true
if the source was added, false
if it was already present.
If roomId
isn't the id of a room that the current user is already
member of or can join.
This method will rewrite the Policies
object in the user's account data.
This rewrite is inherently racy and could overwrite or be overwritten by
other concurrent rewrites of the same object.
A valid room id. If this room is already in the list of sources, it will not be duplicated.
Private
getFetch the IGNORE_INVITES_POLICIES
object from account data.
If both an unstable prefix version and a stable prefix version are available, it will return the stable prefix version preferentially.
The result is not validated but is guaranteed to be a non-null object.
A non-null object.
Get the list of source rooms, i.e. the rooms from which rules need to be read.
If no source rooms are setup, the target room is used as sole source room.
Note: This method is public for testing reasons. Most clients should not need to call it directly.
This method will rewrite the Policies
object in the user's account data.
This rewrite is inherently racy and could overwrite or be overwritten by
other concurrent rewrites of the same object.
Get the target room, i.e. the room in which any new rule should be written.
If there is no target room setup, a target room is created.
Note: This method is public for testing reasons. Most clients should not need to call it directly.
This method will rewrite the Policies
object in the user's account data.
This rewrite is inherently racy and could overwrite or be overwritten by
other concurrent rewrites of the same object.
Private
getAs getIgnoreInvitesPolicies
but also return the POLICIES_ACCOUNT_EVENT_TYPE
object.
Find out whether an invite should be ignored.
A rule matching the entity, if any was found, null
otherwise.
Remove a rule.
Private
withModify in place the IGNORE_INVITES_POLICIES
object from account data.
Generated using TypeDoc
A container for ignored invites.
Performance
This implementation is extremely naive. It expects that we are dealing with a very short list of sources (e.g. only one). If real-world applications turn out to require longer lists, we may need to rework our data structures.