Public Access
Relay: end a user's sessions into a vault the moment they lose access to it
This commit is contained in:
1 parent
965c9a7043
commit
170caa1391
12 files changed
+281
-38
No files matched your search
@@ -0,0 +1,24 @@
|
||||
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);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user