aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Braun <roger@rogerbraun.net>2017-05-01 18:05:02 +0200
committerRoger Braun <roger@rogerbraun.net>2017-05-01 18:05:02 +0200
commit92a8944dfe043444af6b4b422789129c04bd34a0 (patch)
treeaa66882df57cbe2c55fdabba790ff17f324f69d9
parent1854842b093524c25e08ece0b33150172036f53c (diff)
downloadpleroma-92a8944dfe043444af6b4b422789129c04bd34a0.tar.gz
Redirect to user feed instead of directly serving it.
-rw-r--r--lib/pleroma/web/ostatus/ostatus_controller.ex6
-rw-r--r--lib/pleroma/web/router.ex2
-rw-r--r--lib/pleroma/web/websub/websub.ex2
3 files changed, 8 insertions, 2 deletions
diff --git a/lib/pleroma/web/ostatus/ostatus_controller.ex b/lib/pleroma/web/ostatus/ostatus_controller.ex
index 4174db786..1c609f6f2 100644
--- a/lib/pleroma/web/ostatus/ostatus_controller.ex
+++ b/lib/pleroma/web/ostatus/ostatus_controller.ex
@@ -4,8 +4,14 @@ defmodule Pleroma.Web.OStatus.OStatusController do
alias Pleroma.{User, Activity}
alias Pleroma.Web.OStatus.FeedRepresenter
alias Pleroma.Repo
+ alias Pleroma.Web.OStatus
import Ecto.Query
+ def feed_redirect(conn, %{"nickname" => nickname}) do
+ user = User.get_cached_by_nickname(nickname)
+ redirect conn, external: OStatus.feed_path(user)
+ end
+
def feed(conn, %{"nickname" => nickname}) do
user = User.get_cached_by_nickname(nickname)
query = from activity in Activity,
diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex
index e875839df..e1475a03e 100644
--- a/lib/pleroma/web/router.ex
+++ b/lib/pleroma/web/router.ex
@@ -74,7 +74,7 @@ defmodule Pleroma.Web.Router do
pipe_through :ostatus
get "/users/:nickname/feed", OStatus.OStatusController, :feed
- get "/users/:nickname", OStatus.OStatusController, :feed
+ get "/users/:nickname", OStatus.OStatusController, :feed_redirect
post "/users/:nickname/salmon", OStatus.OStatusController, :salmon_incoming
post "/push/hub/:nickname", Websub.WebsubController, :websub_subscription_request
get "/push/subscriptions/:id", Websub.WebsubController, :websub_subscription_confirmation
diff --git a/lib/pleroma/web/websub/websub.ex b/lib/pleroma/web/websub/websub.ex
index 67055a116..b279a5060 100644
--- a/lib/pleroma/web/websub/websub.ex
+++ b/lib/pleroma/web/websub/websub.ex
@@ -99,7 +99,7 @@ defmodule Pleroma.Web.Websub do
defp valid_topic(%{"hub.topic" => topic}, user) do
if topic == OStatus.feed_path(user) do
- {:ok, topic}
+ {:ok, OStatus.feed_path(user)}
else
{:error, "Wrong topic requested, expected #{OStatus.feed_path(user)}, got #{topic}"}
end