diff --git a/lib/decentralised_book_index_web/components/my_components/search_resources.ex b/lib/decentralised_book_index_web/components/my_components/search_resources.ex index b030da5..fe3d580 100644 --- a/lib/decentralised_book_index_web/components/my_components/search_resources.ex +++ b/lib/decentralised_book_index_web/components/my_components/search_resources.ex @@ -13,6 +13,8 @@ defmodule DecentralisedBookIndexWeb.Components.MyComponents.SearchResources do attr :resource_new_url, :string, required: true attr :search_placeholder, :string, default: "Search by name" + attr :moderator_role, :atom, default: :moderator + def search_resources(assigns) do ~H"""
@@ -31,7 +33,7 @@ defmodule DecentralisedBookIndexWeb.Components.MyComponents.SearchResources do
- <%= if @current_user != nil and Role.can_moderate?(@current_user.role) do %> + <%= if can_add?(@current_user, @moderator_role) do %> <.link patch={@resource_new_url}>
""" end + + defp can_add?(current_user, role) do + case role do + :admin -> current_user != nil and Role.can_moderate?(current_user.role) + :moderator -> current_user != nil and Role.can_moderate?(current_user.role) + _ -> false + end + end end diff --git a/lib/decentralised_book_index_web/live/dbi_server_live/index.ex b/lib/decentralised_book_index_web/live/dbi_server_live/index.ex index f2a232b..badaa91 100644 --- a/lib/decentralised_book_index_web/live/dbi_server_live/index.ex +++ b/lib/decentralised_book_index_web/live/dbi_server_live/index.ex @@ -18,6 +18,7 @@ defmodule DecentralisedBookIndexWeb.DbiServerLive.Index do current_user={@current_user} resource_type="server" resource_new_url={~p"/servers/new"} + moderator_role={:admin} />