Add the moderator role attribute for search the resources component.

dev
KKlochko 2 months ago
parent a2c22319f0
commit 3ee8b2ed0b

@ -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"""
<div class="relative bg-white shadow-md dark:bg-gray-800 sm:rounded-lg">
@ -31,7 +33,7 @@ defmodule DecentralisedBookIndexWeb.Components.MyComponents.SearchResources do
</form>
</div>
<div class="flex flex-col items-stretch justify-end flex-shrink-0 w-full space-y-2 md:w-auto md:flex-row md:space-y-0 md:items-center md:space-x-3">
<%= 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}>
<button type="button" class="flex items-center justify-center px-4 py-2 text-sm font-medium text-black dark:text-white rounded-lg bg-primary-700 hover:bg-primary-800 focus:ring-4 focus:ring-primary-300 dark:bg-primary-600 dark:hover:bg-primary-700 focus:outline-none dark:focus:ring-primary-800">
<svg class="h-3.5 w-3.5 mr-2" fill="currentColor" viewbox="0 0 20 20" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
@ -59,4 +61,12 @@ defmodule DecentralisedBookIndexWeb.Components.MyComponents.SearchResources do
</div>
"""
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

@ -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}
/>
</div>

Loading…
Cancel
Save