Add the moderator role attribute for search the resources component.
This commit is contained in:
@@ -13,6 +13,8 @@ defmodule DecentralisedBookIndexWeb.Components.MyComponents.SearchResources do
|
|||||||
attr :resource_new_url, :string, required: true
|
attr :resource_new_url, :string, required: true
|
||||||
attr :search_placeholder, :string, default: "Search by name"
|
attr :search_placeholder, :string, default: "Search by name"
|
||||||
|
|
||||||
|
attr :moderator_role, :atom, default: :moderator
|
||||||
|
|
||||||
def search_resources(assigns) do
|
def search_resources(assigns) do
|
||||||
~H"""
|
~H"""
|
||||||
<div class="relative bg-white shadow-md dark:bg-gray-800 sm:rounded-lg">
|
<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>
|
</form>
|
||||||
</div>
|
</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">
|
<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}>
|
<.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">
|
<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">
|
<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>
|
</div>
|
||||||
"""
|
"""
|
||||||
end
|
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
|
end
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ defmodule DecentralisedBookIndexWeb.DbiServerLive.Index do
|
|||||||
current_user={@current_user}
|
current_user={@current_user}
|
||||||
resource_type="server"
|
resource_type="server"
|
||||||
resource_new_url={~p"/servers/new"}
|
resource_new_url={~p"/servers/new"}
|
||||||
|
moderator_role={:admin}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user