Fix DBIServer FormComponent to allow edit only other servers' sync_on?.
continuous-integration/drone/push Build is passing Details

dev
KKlochko 1 month ago
parent ffbec934a6
commit db025ece6a

@ -20,7 +20,7 @@ defmodule DecentralisedBookIndexWeb.DbiServerLive.FormComponent do
<.input field={@form[:name]} type="text" label="Name" /> <.input field={@form[:name]} type="text" label="Name" />
<.input field={@form[:url]} type="text" label="Url" /> <.input field={@form[:url]} type="text" label="Url" />
<% end %> <% 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[:name]} type="text" label="Name" />
<.input field={@form[:url]} type="text" label="Url" /> <.input field={@form[:url]} type="text" label="Url" />
<% end %> <% end %>

@ -87,5 +87,32 @@ defmodule DecentralisedBookIndexWeb.LiveViewsPermissionsForOtherServersDataTest
|> live("/servers/#{dbi_server.id}/edit") |> live("/servers/#{dbi_server.id}/edit")
end end
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
end end

Loading…
Cancel
Save