Remote Timeline: add Streaming support
[akkoma] / lib / pleroma / plugs / oauth_scopes_plug.ex
index a61582566ce6dfa6e7ae34ecc5a41f0ba4d02a78..b1a736d78ad2cf02727dd049769bc9937ae3f5c1 100644 (file)
@@ -28,9 +28,7 @@ defmodule Pleroma.Plugs.OAuthScopesPlug do
         conn
 
       options[:fallback] == :proceed_unauthenticated ->
-        conn
-        |> assign(:user, nil)
-        |> assign(:token, nil)
+        drop_auth_info(conn)
 
       true ->
         missing_scopes = scopes -- matched_scopes
@@ -46,7 +44,16 @@ defmodule Pleroma.Plugs.OAuthScopesPlug do
     end
   end
 
-  @doc "Filters descendants of supported scopes"
+  @doc "Drops authentication info from connection"
+  def drop_auth_info(conn) do
+    # To simplify debugging, setting a private variable on `conn` if auth info is dropped
+    conn
+    |> put_private(:authentication_ignored, true)
+    |> assign(:user, nil)
+    |> assign(:token, nil)
+  end
+
+  @doc "Keeps those of `scopes` which are descendants of `supported_scopes`"
   def filter_descendants(scopes, supported_scopes) do
     Enum.filter(
       scopes,