Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop
[akkoma] / lib / pleroma / web / oauth / scopes.ex
index 5e04652c2ae554667fff4376039e654be723ecb4..00da225b980dea4ac126603ab161ccac4f47b4d1 100644 (file)
@@ -79,7 +79,9 @@ defmodule Pleroma.Web.OAuth.Scopes do
     if user.is_admin || !contains_admin_scopes?(scopes) || !contains_admin_scopes?(app_scopes) do
       {:ok, scopes}
     else
-      {:error, :unsupported_scopes}
+      # Gracefully dropping admin scopes from requested scopes if user isn't an admin (not raising)
+      scopes = scopes -- OAuthScopesPlug.filter_descendants(scopes, ["admin"])
+      validate(scopes, app_scopes, user)
     end
   end