diff --git a/lib/cannery/accounts.ex b/lib/cannery/accounts.ex index 688097d..b185874 100644 --- a/lib/cannery/accounts.ex +++ b/lib/cannery/accounts.ex @@ -238,6 +238,14 @@ defmodule Cannery.Accounts do :ok end + @doc """ + Returns a boolean if registration is allowed or not + """ + def allow_registration?() do + Application.get_env(:cannery, CanneryWeb.Endpoint)[:registration] == "public" or + list_users_by_role(:admin) |> Enum.empty?() + end + ## Confirmation @doc """ diff --git a/lib/cannery_web/live/component/topbar.html.leex b/lib/cannery_web/live/component/topbar.html.leex index bbf61e9..fd6d9d0 100644 --- a/lib/cannery_web/live/component/topbar.html.leex +++ b/lib/cannery_web/live/component/topbar.html.leex @@ -48,24 +48,31 @@ <%= link @current_user.email, class: "hover:underline", to: Routes.user_settings_path(CanneryWeb.Endpoint, :edit) %> +
  • - <%= link to: Routes.user_session_path(CanneryWeb.Endpoint, :delete), method: :delete do %> + <%= link to: Routes.user_session_path(CanneryWeb.Endpoint, :delete), method: :delete, + data: [confirm: "Are you sure you want to log out?"] do %> <% end %>
  • - <%= if function_exported?(Routes, :live_dashboard_path, 2) do %> + <%= if @current_user.role == :admin and function_exported?(Routes, :live_dashboard_path, 2) do %>
  • <%= link to: Routes.live_dashboard_path(CanneryWeb.Endpoint, :home) do %> <% end %>
  • <% end %> + <% else %> + + <%= if Accounts.allow_registration?() do %>
  • <%= link "Register", class: "hover:underline", to: Routes.user_registration_path(CanneryWeb.Endpoint, :new) %>
  • + <% end %> +
  • <%= link "Log in", class: "hover:underline", to: Routes.user_session_path(CanneryWeb.Endpoint, :new) %> diff --git a/lib/cannery_web/templates/layout/topbar.html.eex b/lib/cannery_web/templates/layout/topbar.html.eex index 6d32711..884a771 100644 --- a/lib/cannery_web/templates/layout/topbar.html.eex +++ b/lib/cannery_web/templates/layout/topbar.html.eex @@ -13,15 +13,19 @@ to: Routes.user_settings_path(CanneryWeb.Endpoint, :edit) %>
  • - <%= link to: Routes.user_session_path(CanneryWeb.Endpoint, :delete), method: :delete do %> + <%= link to: Routes.user_session_path(CanneryWeb.Endpoint, :delete), method: :delete, + data: [confirm: "Are you sure you want to log out?"] do %> <% end %>
  • <% else %> + <%= if Accounts.allow_registration?() do %>
  • <%= link "Register", class: "hover:underline", to: Routes.user_registration_path(CanneryWeb.Endpoint, :new) %>
  • + <% end %> +
  • <%= link "Log in", class: "hover:underline", to: Routes.user_session_path(CanneryWeb.Endpoint, :new) %> @@ -29,4 +33,4 @@ <% end %> - \ No newline at end of file +