diff options
author | rinpatch <rinpatch@sdf.org> | 2019-11-15 14:11:48 +0000 |
---|---|---|
committer | rinpatch <rinpatch@sdf.org> | 2019-11-15 14:11:48 +0000 |
commit | 22554ac5ca056c2db627fc2daa5ffc8710be5c89 (patch) | |
tree | 6d3fb3c7690f07260b8949cd6c728ba9492729b0 /lib | |
parent | 13b6aefd59776b5979175cfce8d6d8dd0183a324 (diff) | |
parent | f17e0f8e4f8f6249d1de9ad8a21953cca4963045 (diff) | |
download | pleroma-22554ac5ca056c2db627fc2daa5ffc8710be5c89.tar.gz |
Merge branch 'bugfix/1395-email-activation' into 'develop'
Bugfix/1395 email activation
Closes #1395
See merge request pleroma/pleroma!1965
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pleroma/plugs/oauth_plug.ex | 2 | ||||
-rw-r--r-- | lib/pleroma/plugs/user_enabled_plug.ex | 10 | ||||
-rw-r--r-- | lib/pleroma/user.ex | 3 | ||||
-rw-r--r-- | lib/pleroma/web/router.ex | 1 |
4 files changed, 12 insertions, 4 deletions
diff --git a/lib/pleroma/plugs/oauth_plug.ex b/lib/pleroma/plugs/oauth_plug.ex index fd004fcd2..11a5b7642 100644 --- a/lib/pleroma/plugs/oauth_plug.ex +++ b/lib/pleroma/plugs/oauth_plug.ex @@ -71,7 +71,7 @@ defmodule Pleroma.Plugs.OAuthPlug do ) # credo:disable-for-next-line Credo.Check.Readability.MaxLineLength - with %Token{user: %{deactivated: false} = user} = token_record <- Repo.one(query) do + with %Token{user: user} = token_record <- Repo.one(query) do {:ok, user, token_record} end end diff --git a/lib/pleroma/plugs/user_enabled_plug.ex b/lib/pleroma/plugs/user_enabled_plug.ex index fbb4bf115..8d102ee5b 100644 --- a/lib/pleroma/plugs/user_enabled_plug.ex +++ b/lib/pleroma/plugs/user_enabled_plug.ex @@ -10,9 +10,13 @@ defmodule Pleroma.Plugs.UserEnabledPlug do options end - def call(%{assigns: %{user: %User{deactivated: true}}} = conn, _) do - conn - |> assign(:user, nil) + def call(%{assigns: %{user: %User{} = user}} = conn, _) do + if User.auth_active?(user) do + conn + else + conn + |> assign(:user, nil) + end end def call(conn, _) do diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index f8c2db1e1..fcb1d5143 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -124,6 +124,9 @@ defmodule Pleroma.User do timestamps() end + @doc "Returns if the user should be allowed to authenticate" + def auth_active?(%User{deactivated: true}), do: false + def auth_active?(%User{confirmation_pending: true}), do: !Pleroma.Config.get([:instance, :account_activation_required]) diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 9b8b373b8..129da422c 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -13,6 +13,7 @@ defmodule Pleroma.Web.Router do pipeline :oauth do plug(:fetch_session) plug(Pleroma.Plugs.OAuthPlug) + plug(Pleroma.Plugs.UserEnabledPlug) end pipeline :api do |