X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fplugs%2Foauth_plug.ex;h=be737dc9a22e7738893fee460879db7bf6262bba;hb=4b06e46a3a97d6a14c7013fa952eade08ff7aef5;hp=fc2a907a2ff3d5a928739c39045ff58c5bc699d7;hpb=f0d41a3abf3e584c90c96644f73d533ea0680237;p=akkoma diff --git a/lib/pleroma/plugs/oauth_plug.ex b/lib/pleroma/plugs/oauth_plug.ex index fc2a907a2..be737dc9a 100644 --- a/lib/pleroma/plugs/oauth_plug.ex +++ b/lib/pleroma/plugs/oauth_plug.ex @@ -9,10 +9,15 @@ defmodule Pleroma.Plugs.OAuthPlug do end def call(%{assigns: %{user: %User{}}} = conn, _), do: conn - def call(conn, opts) do - with ["Bearer " <> header] <- get_req_header(conn, "authorization"), - %Token{user_id: user_id} <- Repo.get_by(Token, token: header), - %User{} = user <- Repo.get(User, user_id) do + def call(conn, _) do + token = case get_req_header(conn, "authorization") do + ["Bearer " <> header] -> header + _ -> get_session(conn, :oauth_token) + end + with token when not is_nil(token) <- token, + %Token{user_id: user_id} <- Repo.get_by(Token, token: token), + %User{} = user <- Repo.get(User, user_id), + false <- !!user.info["deactivated"] do conn |> assign(:user, user) else