projects
/
akkoma
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update OpenAPI spec/schema and test to verify support for pleroma:emoji_reaction...
[akkoma]
/
lib
/
pleroma
/
web
/
feed
/
user_controller.ex
diff --git
a/lib/pleroma/web/feed/user_controller.ex
b/lib/pleroma/web/feed/user_controller.ex
index 5a6fc9de03b6635ec2a09143768238f83bd0a75e..a5013d2c004a03315a52fc62eb7eac684482b98c 100644
(file)
--- a/
lib/pleroma/web/feed/user_controller.ex
+++ b/
lib/pleroma/web/feed/user_controller.ex
@@
-5,32
+5,25
@@
defmodule Pleroma.Web.Feed.UserController do
use Pleroma.Web, :controller
defmodule Pleroma.Web.Feed.UserController do
use Pleroma.Web, :controller
- alias
Fallback.RedirectController
+ alias
Pleroma.Config
alias Pleroma.User
alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.Web.ActivityPub.ActivityPubController
alias Pleroma.Web.Feed.FeedView
alias Pleroma.User
alias Pleroma.Web.ActivityPub.ActivityPub
alias Pleroma.Web.ActivityPub.ActivityPubController
alias Pleroma.Web.Feed.FeedView
- import Pleroma.Web.ControllerHelper, only: [put_if_exist: 3]
-
- plug(Pleroma.Plugs.SetFormatPlug when action in [:feed_redirect])
+ plug(Pleroma.Web.Plugs.SetFormatPlug when action in [:feed_redirect])
action_fallback(:errors)
def feed_redirect(%{assigns: %{format: "html"}} = conn, %{"nickname" => nickname}) do
with {_, %User{} = user} <- {:fetch_user, User.get_cached_by_nickname_or_id(nickname)} do
action_fallback(:errors)
def feed_redirect(%{assigns: %{format: "html"}} = conn, %{"nickname" => nickname}) do
with {_, %User{} = user} <- {:fetch_user, User.get_cached_by_nickname_or_id(nickname)} do
- RedirectController.redirector_with_meta(conn, %{user: user})
+
Pleroma.Web.Fallback.
RedirectController.redirector_with_meta(conn, %{user: user})
end
end
def feed_redirect(%{assigns: %{format: format}} = conn, _params)
when format in ["json", "activity+json"] do
end
end
def feed_redirect(%{assigns: %{format: format}} = conn, _params)
when format in ["json", "activity+json"] do
- with %{halted: false} = conn <-
- Pleroma.Plugs.EnsureAuthenticatedPlug.call(conn,
- unless_func: &Pleroma.Web.FederatingPlug.federating?/1
- ) do
- ActivityPubController.call(conn, :user)
- end
+ ActivityPubController.call(conn, :user)
end
def feed_redirect(conn, %{"nickname" => nickname}) do
end
def feed_redirect(conn, %{"nickname" => nickname}) do
@@
-43,19
+36,20
@@
defmodule Pleroma.Web.Feed.UserController do
format = get_format(conn)
format =
format = get_format(conn)
format =
- if format in ["
rss", "atom
"] do
+ if format in ["
atom", "rss
"] do
format
else
"atom"
end
format
else
"atom"
end
- with {_, %User{} = user} <- {:fetch_user, User.get_cached_by_nickname(nickname)} do
+ with {_, %User{local: true} = user} <- {:fetch_user, User.get_cached_by_nickname(nickname)},
+ {_, :visible} <- {:visibility, User.visible_for(user, _reading_user = nil)} do
activities =
%{
activities =
%{
-
"type" =>
["Create"],
-
"actor_id" =>
user.ap_id
+
type:
["Create"],
+
actor_id:
user.ap_id
}
}
- |>
put_if_exist("max_id"
, params["max_id"])
+ |>
Pleroma.Maps.put_if_present(:max_id
, params["max_id"])
|> ActivityPub.fetch_public_or_unlisted_activities()
conn
|> ActivityPub.fetch_public_or_unlisted_activities()
conn
@@
-64,7
+58,7
@@
defmodule Pleroma.Web.Feed.UserController do
|> render("user.#{format}",
user: user,
activities: activities,
|> render("user.#{format}",
user: user,
activities: activities,
- feed_config:
Pleroma.
Config.get([:feed])
+ feed_config: Config.get([:feed])
)
end
end
)
end
end
@@
-73,8
+67,11
@@
defmodule Pleroma.Web.Feed.UserController do
render_error(conn, :not_found, "Not found")
end
render_error(conn, :not_found, "Not found")
end
+ def errors(conn, {:fetch_user, %User{local: false}}), do: errors(conn, {:error, :not_found})
def errors(conn, {:fetch_user, nil}), do: errors(conn, {:error, :not_found})
def errors(conn, {:fetch_user, nil}), do: errors(conn, {:error, :not_found})
+ def errors(conn, {:visibility, _}), do: errors(conn, {:error, :not_found})
+
def errors(conn, _) do
render_error(conn, :internal_server_error, "Something went wrong")
end
def errors(conn, _) do
render_error(conn, :internal_server_error, "Something went wrong")
end