X-Git-Url: https://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fplugs%2Foauth_plug.ex;h=0380ce14db4d0dac270686ad5a8d5633f01d3286;hb=5bb88fd1749931e755157760ec833c5d50ebb8c8;hp=fc2a907a2ff3d5a928739c39045ff58c5bc699d7;hpb=f0d41a3abf3e584c90c96644f73d533ea0680237;p=akkoma diff --git a/lib/pleroma/plugs/oauth_plug.ex b/lib/pleroma/plugs/oauth_plug.ex index fc2a907a2..0380ce14d 100644 --- a/lib/pleroma/plugs/oauth_plug.ex +++ b/lib/pleroma/plugs/oauth_plug.ex @@ -9,10 +9,18 @@ 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