Public Access
25 lines
904 B
C#
25 lines
904 B
C#
using DodoSSH.Api.Features.Relay;
|
|
|
|
namespace DodoSSH.Api.Features.Events;
|
|
|
|
/// <summary>
|
|
/// Announces a change to everything on this node that acts on one: the event sockets, and the relay.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// What the write paths are given as their <see cref="IVaultEventPublisher"/>. They announce a change once and
|
|
/// do not know who listens, which is the point: the relay learning about removals from teams did not have to
|
|
/// touch any of the places a removal happens.
|
|
/// </remarks>
|
|
internal sealed class VaultEventFanOut(VaultEventHub hub, RelayAccessWatch relay) : IVaultEventPublisher
|
|
{
|
|
/// <inheritdoc />
|
|
public void VaultChanged(Guid vaultId, long sequence) => hub.VaultChanged(vaultId, sequence);
|
|
|
|
/// <inheritdoc />
|
|
public void VaultAccessChanged(Guid userId)
|
|
{
|
|
hub.VaultAccessChanged(userId);
|
|
_ = relay.AccessChangedAsync(userId);
|
|
}
|
|
}
|