diff options
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 | 
