diff --git a/apps/fg_http/lib/fg_http/users.ex b/apps/fg_http/lib/fg_http/users.ex index d8cfa6be6..e0f14aac3 100644 --- a/apps/fg_http/lib/fg_http/users.ex +++ b/apps/fg_http/lib/fg_http/users.ex @@ -40,6 +40,10 @@ defmodule FgHttp.Users do User.changeset(user, %{}) end + def single_user? do + Repo.one(from u in User, select: count()) == 1 + end + # For now, assume first User is admin def admin do User |> first |> Repo.one() diff --git a/apps/fg_http/lib/fg_http_web/templates/session/new.html.eex b/apps/fg_http/lib/fg_http_web/templates/session/new.html.eex index 540fa4a4a..f7fbcf19f 100644 --- a/apps/fg_http/lib/fg_http_web/templates/session/new.html.eex +++ b/apps/fg_http/lib/fg_http_web/templates/session/new.html.eex @@ -13,7 +13,7 @@
<%= error_tag f, :email %> diff --git a/apps/fg_http/lib/fg_http_web/views/session_view.ex b/apps/fg_http/lib/fg_http_web/views/session_view.ex index f23c480e3..0e5a3d33c 100644 --- a/apps/fg_http/lib/fg_http_web/views/session_view.ex +++ b/apps/fg_http/lib/fg_http_web/views/session_view.ex @@ -2,12 +2,12 @@ defmodule FgHttpWeb.SessionView do use FgHttpWeb, :view alias FgHttp.Users - # Don't allow user to enter email if signups are disabled. - def email_field_opts do - if signups_disabled?() do - [class: "input", readonly: true, value: Users.admin_email()] + # Guess email if signups are disabled and only one user exists + def email_field_opts(opts \\ []) when is_list(opts) do + if Users.single_user?() and signups_disabled?() do + opts ++ [value: Users.admin_email()] else - [class: "input"] + opts end end