aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMark Felder <feld@FreeBSD.org>2020-08-31 15:58:21 -0500
committerrinpatch <rinpatch@sdf.org>2020-09-08 20:21:34 +0300
commita85ed6defbd2cec71d9a5594ef1de18d5333c7c7 (patch)
tree80897436977229df5fca3057abed7a8059c2d47e /lib
parent44ced17634a9c89b9ff4a47c64805356f7f6401c (diff)
downloadpleroma-a85ed6defbd2cec71d9a5594ef1de18d5333c7c7.tar.gz
Do not serve RSS/Atom feeds when instance is private
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/web/feed/tag_controller.ex10
-rw-r--r--lib/pleroma/web/feed/user_controller.ex10
-rw-r--r--lib/pleroma/web/metadata/feed.ex20
3 files changed, 30 insertions, 10 deletions
diff --git a/lib/pleroma/web/feed/tag_controller.ex b/lib/pleroma/web/feed/tag_controller.ex
index 39b2a766a..e090dd625 100644
--- a/lib/pleroma/web/feed/tag_controller.ex
+++ b/lib/pleroma/web/feed/tag_controller.ex
@@ -9,7 +9,15 @@ defmodule Pleroma.Web.Feed.TagController do
alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.Web.Feed.FeedView
- def feed(conn, %{"tag" => raw_tag} = params) do
+ def feed(conn, params) do
+ if Pleroma.Config.get!([:instance, :public]) do
+ render_feed(conn, params)
+ else
+ render_error(conn, :not_found, "Not found")
+ end
+ end
+
+ def render_feed(conn, %{"tag" => raw_tag} = params) do
{format, tag} = parse_tag(raw_tag)
activities =
diff --git a/lib/pleroma/web/feed/user_controller.ex b/lib/pleroma/web/feed/user_controller.ex
index 9cd334a33..595889b9d 100644
--- a/lib/pleroma/web/feed/user_controller.ex
+++ b/lib/pleroma/web/feed/user_controller.ex
@@ -37,7 +37,15 @@ defmodule Pleroma.Web.Feed.UserController do
end
end
- def feed(conn, %{"nickname" => nickname} = params) do
+ def feed(conn, params) do
+ if Pleroma.Config.get!([:instance, :public]) do
+ render_feed(conn, params)
+ else
+ errors(conn, {:error, :not_found})
+ end
+ end
+
+ def render_feed(conn, %{"nickname" => nickname} = params) do
format = get_format(conn)
format =
diff --git a/lib/pleroma/web/metadata/feed.ex b/lib/pleroma/web/metadata/feed.ex
index bd1459a17..dfe391b56 100644
--- a/lib/pleroma/web/metadata/feed.ex
+++ b/lib/pleroma/web/metadata/feed.ex
@@ -11,13 +11,17 @@ defmodule Pleroma.Web.Metadata.Providers.Feed do
@impl Provider
def build_tags(%{user: user}) do
- [
- {:link,
- [
- rel: "alternate",
- type: "application/atom+xml",
- href: Helpers.user_feed_path(Endpoint, :feed, user.nickname) <> ".atom"
- ], []}
- ]
+ if Pleroma.Config.get!([:instance, :public]) do
+ [
+ {:link,
+ [
+ rel: "alternate",
+ type: "application/atom+xml",
+ href: Helpers.user_feed_path(Endpoint, :feed, user.nickname) <> ".atom"
+ ], []}
+ ]
+ else
+ []
+ end
end
end