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.

Constructors

Methods

  • Add a new rule.

    Parameters

    • scope: PolicyScope

      The scope for this rule.

    • entity: string

      The entity covered by this rule. Globs are supported.

    • reason: string

      A human-readable reason for introducing this new rule.

    Returns Promise<string>

    The event id for the 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.

    Parameters

    • roomId: string

      A valid room id. If this room is already in the list of sources, it will not be duplicated.

    Returns Promise<boolean>

    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.

    Safety

    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 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.

    Safety

    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.

    Returns Promise<Room[]>

  • 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.

    Safety

    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.

    Returns Promise<Room>

  • Find out whether an invite should be ignored.

    Parameters

    • params: { roomId: string; sender: string }
      • roomId: string

        The room to which the user is invited.

      • sender: string

        The user id for the user who issued the invite.

    Returns Promise<Readonly<null | MatrixEvent>>

    A rule matching the entity, if any was found, null otherwise.