Merge branch 'fix/access-mastofe-auth-on-private-instances' into 'develop'
authorkaniini <ariadne@dereferenced.org>
Mon, 29 Jul 2019 16:17:23 +0000 (16:17 +0000)
committerkaniini <ariadne@dereferenced.org>
Mon, 29 Jul 2019 16:17:23 +0000 (16:17 +0000)
Redirect not logged-in users to the MastoFE login page on private instances

Closes #1045

See merge request pleroma/pleroma!1503

CHANGELOG.md
lib/pleroma/web/router.ex
test/web/mastodon_api/mastodon_api_controller_test.exs

index 48379b7570fc0910c77056c198ac975a18e0336f..5416d452eee168b7c07bb4f1cd410b36c444dc1b 100644 (file)
@@ -28,6 +28,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 - Rich Media: The crawled URL is now spliced into the rich media data.
 - ActivityPub S2S: sharedInbox usage has been mostly aligned with the rules in the AP specification.
 - ActivityPub S2S: remote user deletions now work the same as local user deletions.
+- Not being able to access the Mastodon FE login page on private instances
 
 ### Added
 - MRF: Support for priming the mediaproxy cache (`Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy`)
index 4e1ab6c331ca0ce85f375d3c7116442f3ff2a20f..0689d69fb3da49a39528b69f33d64d790845ea9c 100644 (file)
@@ -698,7 +698,7 @@ defmodule Pleroma.Web.Router do
     post("/auth/password", MastodonAPIController, :password_reset)
 
     scope [] do
-      pipe_through(:oauth_read_or_public)
+      pipe_through(:oauth_read)
       get("/web/*path", MastodonAPIController, :index)
     end
   end
index d7f92fac25c4ddf07782b6594689436aeecb5830..66016c886a6e5a47fe3bc2e44827d130b60a297c 100644 (file)
@@ -3154,6 +3154,21 @@ defmodule Pleroma.Web.MastodonAPI.MastodonAPIControllerTest do
       assert redirected_to(conn) == "/web/login"
     end
 
+    test "redirects not logged-in users to the login page on private instances", %{
+      conn: conn,
+      path: path
+    } do
+      is_public = Pleroma.Config.get([:instance, :public])
+      Pleroma.Config.put([:instance, :public], false)
+
+      conn = get(conn, path)
+
+      assert conn.status == 302
+      assert redirected_to(conn) == "/web/login"
+
+      Pleroma.Config.put([:instance, :public], is_public)
+    end
+
     test "does not redirect logged in users to the login page", %{conn: conn, path: path} do
       token = insert(:oauth_token)