From 443e6d2891a71276b1a06158d16094f27aae1a89 Mon Sep 17 00:00:00 2001 From: Jamil Date: Wed, 4 Jun 2025 12:41:48 -0700 Subject: [PATCH] fix(portal): preserve device name (#9393) (#9401) When upserting a client, the device name would overwrite any name changes performed by the admin. To prevent this, we don't allow changing a device's name on upsert conflicts, only on initial insert and updates. Fixes #8536 Co-authored-by: Antoine --- elixir/apps/domain/lib/domain/clients/client/changeset.ex | 1 - elixir/apps/domain/test/domain/clients_test.exs | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/elixir/apps/domain/lib/domain/clients/client/changeset.ex b/elixir/apps/domain/lib/domain/clients/client/changeset.ex index d866c1c06..08266cb45 100644 --- a/elixir/apps/domain/lib/domain/clients/client/changeset.ex +++ b/elixir/apps/domain/lib/domain/clients/client/changeset.ex @@ -19,7 +19,6 @@ defmodule Domain.Clients.Client.Changeset do Clients.Client.Query.all() |> update([clients: clients], set: [ - name: fragment("EXCLUDED.name"), public_key: fragment("EXCLUDED.public_key"), last_used_token_id: fragment("EXCLUDED.last_used_token_id"), last_seen_user_agent: fragment("EXCLUDED.last_seen_user_agent"), diff --git a/elixir/apps/domain/test/domain/clients_test.exs b/elixir/apps/domain/test/domain/clients_test.exs index 6ad5ae657..7f13931d7 100644 --- a/elixir/apps/domain/test/domain/clients_test.exs +++ b/elixir/apps/domain/test/domain/clients_test.exs @@ -497,7 +497,7 @@ defmodule Domain.ClientsTest do assert Repo.aggregate(Clients.Client, :count, :id) == 1 - assert updated_client.name != client.name + assert updated_client.name == client.name assert updated_client.last_seen_remote_ip.address == subject.context.remote_ip assert updated_client.last_seen_remote_ip != client.last_seen_remote_ip assert updated_client.last_seen_user_agent == subject.context.user_agent