diff --git a/lib/towerops_web/live/agent_live/index.ex b/lib/towerops_web/live/agent_live/index.ex index 96986972..cc44a7e1 100644 --- a/lib/towerops_web/live/agent_live/index.ex +++ b/lib/towerops_web/live/agent_live/index.ex @@ -166,7 +166,11 @@ defmodule ToweropsWeb.AgentLive.Index do # Verify the agent token belongs to the current org before deleting agent_token = Agents.get_agent_token!(id) - if agent_token.organization_id != organization.id do + is_superuser = Scope.superuser?(socket.assigns.current_scope) + is_cloud_poller = is_nil(agent_token.organization_id) + belongs_to_org = agent_token.organization_id == organization.id + + if not belongs_to_org and not (is_superuser and is_cloud_poller) do {:noreply, put_flash(socket, :error, t_equipment("Agent not found"))} else case Agents.delete_agent_token(id) do