aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkaniini <nenolod@gmail.com>2018-08-26 21:35:12 +0000
committerkaniini <nenolod@gmail.com>2018-08-26 21:35:12 +0000
commitc9e4c45e0e381eb0293588f65c49212e3573161a (patch)
treeda227cefb31bcfab162e3dee33611ffcd9abc2d8
parent3448b434f54e8b4749524e3ccd876359a6501845 (diff)
parent540cce5d1075fc3033254e5d8bf7d138485ed7bb (diff)
downloadpleroma-c9e4c45e0e381eb0293588f65c49212e3573161a.tar.gz
Merge branch 'login-with-email' into 'develop'
When logging in, try treating the login as an email Closes #245 See merge request pleroma/pleroma!295
-rw-r--r--lib/pleroma/web/router.ex12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index 2dadf974c..913152c5a 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -8,8 +8,16 @@ defmodule Pleroma.Web.Router do
@public Keyword.get(@instance, :public)
@registrations_open Keyword.get(@instance, :registrations_open)
- def user_fetcher(username) do
- {:ok, Repo.get_by(User, %{nickname: username})}
+ def user_fetcher(username_or_email) do
+ {
+ :ok,
+ cond do
+ # First, try logging in as if it was a name
+ user = Repo.get_by(User, %{nickname: username_or_email}) -> user
+ # If we get nil, we try using it as an email
+ user = Repo.get_by(User, %{email: username_or_email}) -> user
+ end
+ }
end
pipeline :api do