forked from potsda.mn/mobilizon
Merge branch 'feature/private-comment' into 'master'
Only render public comments Closes #111 See merge request framasoft/mobilizon!126
This commit is contained in:
commit
e1e410d595
|
@ -42,7 +42,16 @@ defmodule MobilizonWeb.ActivityPubController do
|
||||||
true <- event.visibility in [:public, :unlisted] do
|
true <- event.visibility in [:public, :unlisted] do
|
||||||
conn
|
conn
|
||||||
|> put_resp_header("content-type", "application/activity+json")
|
|> put_resp_header("content-type", "application/activity+json")
|
||||||
|> json(ObjectView.render("event.json", %{event: event |> Utils.make_event_data()}))
|
|> json(
|
||||||
|
ObjectView.render(
|
||||||
|
"event.json",
|
||||||
|
%{
|
||||||
|
event:
|
||||||
|
event
|
||||||
|
|> Utils.make_event_data()
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
else
|
else
|
||||||
{:ignore, _} ->
|
{:ignore, _} ->
|
||||||
{:error, :not_found}
|
{:error, :not_found}
|
||||||
|
@ -55,15 +64,22 @@ defmodule MobilizonWeb.ActivityPubController do
|
||||||
@spec comment(Plug.Conn.t(), map()) :: Plug.Conn.t()
|
@spec comment(Plug.Conn.t(), map()) :: Plug.Conn.t()
|
||||||
def comment(conn, %{"uuid" => uuid}) do
|
def comment(conn, %{"uuid" => uuid}) do
|
||||||
with {status, %Comment{} = comment} when status in [:ok, :commit] <-
|
with {status, %Comment{} = comment} when status in [:ok, :commit] <-
|
||||||
Events.get_cached_comment_full_by_uuid(uuid) do
|
Events.get_cached_comment_full_by_uuid(uuid),
|
||||||
# Comments are always public for now
|
true <- comment.visibility in [:public, :unlisted] do
|
||||||
# TODO : Make comments maybe restricted
|
|
||||||
# true <- comment.public do
|
|
||||||
conn
|
conn
|
||||||
|> put_resp_header("content-type", "application/activity+json")
|
|> put_resp_header("content-type", "application/activity+json")
|
||||||
|> json(ObjectView.render("comment.json", %{comment: comment |> Utils.make_comment_data()}))
|
|> json(
|
||||||
|
ObjectView.render(
|
||||||
|
"comment.json",
|
||||||
|
%{
|
||||||
|
comment:
|
||||||
|
comment
|
||||||
|
|> Utils.make_comment_data()
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
else
|
else
|
||||||
{:ignore, _} ->
|
_ ->
|
||||||
{:error, :not_found}
|
{:error, :not_found}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -60,10 +60,8 @@ defmodule MobilizonWeb.PageController do
|
||||||
case get_format(conn) do
|
case get_format(conn) do
|
||||||
"html" ->
|
"html" ->
|
||||||
with {status, %Comment{} = comment} when status in [:ok, :commit] <-
|
with {status, %Comment{} = comment} when status in [:ok, :commit] <-
|
||||||
Events.get_cached_comment_full_by_uuid(uuid) do
|
Events.get_cached_comment_full_by_uuid(uuid),
|
||||||
# Comments are always public for now
|
true <- comment.visibility in [:public, :unlisted] do
|
||||||
# TODO : Make comments maybe restricted
|
|
||||||
# true <- comment.public do
|
|
||||||
render_with_meta(conn, comment)
|
render_with_meta(conn, comment)
|
||||||
else
|
else
|
||||||
_ -> {:error, :not_found}
|
_ -> {:error, :not_found}
|
||||||
|
|
|
@ -69,17 +69,16 @@ defmodule MobilizonWeb.ActivityPubControllerTest do
|
||||||
ObjectView.render("comment.json", %{comment: comment |> Utils.make_comment_data()})
|
ObjectView.render("comment.json", %{comment: comment |> Utils.make_comment_data()})
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO !
|
test "it returns 404 for non-public comments", %{conn: conn} do
|
||||||
# test "it returns 404 for non-public comments", %{conn: conn} do
|
comment = insert(:comment, visibility: :private)
|
||||||
# event = insert(:event, public: false)
|
|
||||||
|
|
||||||
# conn =
|
conn =
|
||||||
# conn
|
conn
|
||||||
# |> put_req_header("accept", "application/activity+json")
|
|> put_req_header("accept", "application/activity+json")
|
||||||
# |> get("/events/#{event.uuid}")
|
|> get(Routes.page_url(Endpoint, :comment, comment.uuid))
|
||||||
|
|
||||||
# assert json_response(conn, 404)
|
assert json_response(conn, 404)
|
||||||
# end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe "/@:preferred_username/inbox" do
|
describe "/@:preferred_username/inbox" do
|
||||||
|
|
|
@ -43,5 +43,20 @@ defmodule MobilizonWeb.PageControllerTest do
|
||||||
assert html_response(conn, 404)
|
assert html_response(conn, 404)
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO: Comments
|
test "GET /comments/:uuid", %{conn: conn} do
|
||||||
|
comment = insert(:comment)
|
||||||
|
conn = get(conn, Routes.page_url(Endpoint, :comment, comment.uuid))
|
||||||
|
assert html_response(conn, 200)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "GET /comments/:uuid with not existing comment", %{conn: conn} do
|
||||||
|
conn = get(conn, Routes.page_url(Endpoint, :comment, "not_existing_comment"))
|
||||||
|
assert html_response(conn, 404)
|
||||||
|
end
|
||||||
|
|
||||||
|
test "GET /comments/:uuid with comment not public", %{conn: conn} do
|
||||||
|
comment = insert(:comment, visibility: :private)
|
||||||
|
conn = get(conn, Routes.page_url(Endpoint, :comment, comment.uuid))
|
||||||
|
assert html_response(conn, 404)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue