aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEkaterina Vaartis <vaartis@cock.li>2018-08-25 21:22:34 +0300
committerEkaterina Vaartis <vaartis@cock.li>2018-08-25 23:29:03 +0300
commit540cce5d1075fc3033254e5d8bf7d138485ed7bb (patch)
tree02682a775d6ac606fcdf25253dd7f0e3ab168eb5
parentffa552f1a41c530a7eff25d27cf0a82e710067b6 (diff)
downloadpleroma-540cce5d1075fc3033254e5d8bf7d138485ed7bb.tar.gz
When logging in, try treating the login as an email
Closes #245
-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