From db025ece6aadeba1901ca2b245f1fedd43ee0b62 Mon Sep 17 00:00:00 2001 From: KKlochko Date: Tue, 20 May 2025 22:13:10 +0300 Subject: [PATCH] Fix DBIServer FormComponent to allow edit only other servers' sync_on?. --- .../live/dbi_server_live/form_component.ex | 2 +- ...permission_for_other_servers_data_test.exs | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/lib/decentralised_book_index_web/live/dbi_server_live/form_component.ex b/lib/decentralised_book_index_web/live/dbi_server_live/form_component.ex index 778ed82..dbad093 100644 --- a/lib/decentralised_book_index_web/live/dbi_server_live/form_component.ex +++ b/lib/decentralised_book_index_web/live/dbi_server_live/form_component.ex @@ -20,7 +20,7 @@ defmodule DecentralisedBookIndexWeb.DbiServerLive.FormComponent do <.input field={@form[:name]} type="text" label="Name" /> <.input field={@form[:url]} type="text" label="Url" /> <% end %> - <%= if @form.source.type == :update and is_nil(@form[:dbi_server].value) do %> + <%= if @form.source.type == :update and is_nil(@form[:dbi_server_id].value) do %> <.input field={@form[:name]} type="text" label="Name" /> <.input field={@form[:url]} type="text" label="Url" /> <% end %> diff --git a/test/decentralised_book_index_web/live/live_views_permission_for_other_servers_data_test.exs b/test/decentralised_book_index_web/live/live_views_permission_for_other_servers_data_test.exs index 94f2280..bc3fe1c 100644 --- a/test/decentralised_book_index_web/live/live_views_permission_for_other_servers_data_test.exs +++ b/test/decentralised_book_index_web/live/live_views_permission_for_other_servers_data_test.exs @@ -87,5 +87,32 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsForOtherServersDataTest |> live("/servers/#{dbi_server.id}/edit") end end + + test "can edit this server data", %{conn: conn, admin: admin} do + dbi_server = generate(dbi_server()) + + for user <- [admin] do + assert {:ok, view, _html} = + conn + |> log_in_user(user) + |> live("/servers/#{dbi_server.id}/edit") + + + assert has_element?(view, "input#dbi_server_name") + assert has_element?(view, "input#dbi_server_url") + end + end + + test "can edit other servers' data, but only sync_on?", %{conn: conn, admin: admin, dbi_server: dbi_server} do + for user <- [admin] do + assert {:ok, view, _html} = + conn + |> log_in_user(user) + |> live("/servers/#{dbi_server.id}/edit") + + refute has_element?(view, "input#dbi_server_name") + refute has_element?(view, "input#dbi_server_url") + end + end end end