mirror of
https://github.com/outbackdingo/firezone.git
synced 2026-01-28 02:18:50 +00:00
Show connection status for global relays
This commit is contained in:
@@ -238,10 +238,15 @@ defmodule Domain.Relays do
|
||||
end
|
||||
|
||||
defp preload_online_statuses(relays, account_id) do
|
||||
connected_global_relays = Presence.list("relays")
|
||||
connected_relays = Presence.list("relays:#{account_id}")
|
||||
|
||||
Enum.map(relays, fn relay ->
|
||||
%{relay | online?: Map.has_key?(connected_relays, relay.id)}
|
||||
online? =
|
||||
Map.has_key?(connected_relays, relay.id) or
|
||||
Map.has_key?(connected_global_relays, relay.id)
|
||||
|
||||
%{relay | online?: online?}
|
||||
end)
|
||||
end
|
||||
|
||||
|
||||
@@ -474,8 +474,17 @@ defmodule Domain.RelaysTest do
|
||||
RelaysFixtures.create_relay(account: account)
|
||||
RelaysFixtures.create_relay()
|
||||
|
||||
group = RelaysFixtures.create_global_group()
|
||||
relay = RelaysFixtures.create_relay(group: group)
|
||||
|
||||
assert {:ok, relays} = list_relays(subject)
|
||||
assert length(relays) == 2
|
||||
assert length(relays) == 3
|
||||
refute Enum.any?(relays, & &1.online?)
|
||||
|
||||
:ok = connect_relay(relay, Ecto.UUID.generate())
|
||||
assert {:ok, relays} = list_relays(subject)
|
||||
assert length(relays) == 3
|
||||
assert Enum.any?(relays, & &1.online?)
|
||||
end
|
||||
|
||||
test "returns error when subject has no permission to manage relays", %{
|
||||
|
||||
Reference in New Issue
Block a user