forked from AkkomaGang/akkoma
Merge branch 'fix/unsafe-variables' into 'develop'
Get rid of unsafe variables. See merge request pleroma/pleroma!145
This commit is contained in:
commit
2b708f76e0
5 changed files with 50 additions and 35 deletions
|
@ -17,9 +17,10 @@ defp check_media_removal(actor_info, object) do
|
||||||
if actor_info.host in @media_removal do
|
if actor_info.host in @media_removal do
|
||||||
child_object = Map.delete(object["object"], "attachment")
|
child_object = Map.delete(object["object"], "attachment")
|
||||||
object = Map.put(object, "object", child_object)
|
object = Map.put(object, "object", child_object)
|
||||||
end
|
|
||||||
|
|
||||||
{:ok, object}
|
{:ok, object}
|
||||||
|
else
|
||||||
|
{:ok, object}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@media_nsfw Keyword.get(@mrf_policy, :media_nsfw)
|
@media_nsfw Keyword.get(@mrf_policy, :media_nsfw)
|
||||||
|
@ -32,9 +33,10 @@ defp check_media_nsfw(actor_info, object) do
|
||||||
child_object = Map.put(child_object, "tags", tags)
|
child_object = Map.put(child_object, "tags", tags)
|
||||||
child_object = Map.put(child_object, "sensitive", true)
|
child_object = Map.put(child_object, "sensitive", true)
|
||||||
object = Map.put(object, "object", child_object)
|
object = Map.put(object, "object", child_object)
|
||||||
end
|
|
||||||
|
|
||||||
{:ok, object}
|
{:ok, object}
|
||||||
|
else
|
||||||
|
{:ok, object}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ftl_removal Keyword.get(@mrf_policy, :federated_timeline_removal)
|
@ftl_removal Keyword.get(@mrf_policy, :federated_timeline_removal)
|
||||||
|
@ -43,6 +45,7 @@ defp check_ftl_removal(actor_info, object) do
|
||||||
user = User.get_by_ap_id(object["actor"])
|
user = User.get_by_ap_id(object["actor"])
|
||||||
|
|
||||||
# flip to/cc relationship to make the post unlisted
|
# flip to/cc relationship to make the post unlisted
|
||||||
|
object =
|
||||||
if "https://www.w3.org/ns/activitystreams#Public" in object["to"] and
|
if "https://www.w3.org/ns/activitystreams#Public" in object["to"] and
|
||||||
user.follower_address in object["cc"] do
|
user.follower_address in object["cc"] do
|
||||||
to =
|
to =
|
||||||
|
@ -53,12 +56,17 @@ defp check_ftl_removal(actor_info, object) do
|
||||||
List.delete(object["cc"], user.follower_address) ++
|
List.delete(object["cc"], user.follower_address) ++
|
||||||
["https://www.w3.org/ns/activitystreams#Public"]
|
["https://www.w3.org/ns/activitystreams#Public"]
|
||||||
|
|
||||||
object = Map.put(object, "to", to)
|
object
|
||||||
object = Map.put(object, "cc", cc)
|
|> Map.put("to", to)
|
||||||
end
|
|> Map.put("cc", cc)
|
||||||
|
else
|
||||||
|
object
|
||||||
end
|
end
|
||||||
|
|
||||||
{:ok, object}
|
{:ok, object}
|
||||||
|
else
|
||||||
|
{:ok, object}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def filter(object) do
|
def filter(object) do
|
||||||
|
|
|
@ -72,8 +72,11 @@ def fix_emoji(object) do
|
||||||
|> Enum.reduce(%{}, fn data, mapping ->
|
|> Enum.reduce(%{}, fn data, mapping ->
|
||||||
name = data["name"]
|
name = data["name"]
|
||||||
|
|
||||||
|
name =
|
||||||
if String.starts_with?(name, ":") do
|
if String.starts_with?(name, ":") do
|
||||||
name = name |> String.slice(1..-2)
|
name = name |> String.slice(1..-2)
|
||||||
|
else
|
||||||
|
name
|
||||||
end
|
end
|
||||||
|
|
||||||
mapping |> Map.put(name, data["icon"]["url"])
|
mapping |> Map.put(name, data["icon"]["url"])
|
||||||
|
|
|
@ -123,8 +123,11 @@ def render("outbox.json", %{user: user, max_id: max_qid}) do
|
||||||
"limit" => "10"
|
"limit" => "10"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
params =
|
||||||
if max_qid != nil do
|
if max_qid != nil do
|
||||||
params = Map.put(params, "max_id", max_qid)
|
Map.put(params, "max_id", max_qid)
|
||||||
|
else
|
||||||
|
params
|
||||||
end
|
end
|
||||||
|
|
||||||
activities = ActivityPub.fetch_public_activities(params)
|
activities = ActivityPub.fetch_public_activities(params)
|
||||||
|
|
|
@ -212,11 +212,11 @@ def user_statuses(%{assigns: %{user: user}} = conn, params) do
|
||||||
|> Map.put("actor_id", ap_id)
|
|> Map.put("actor_id", ap_id)
|
||||||
|> Map.put("whole_db", true)
|
|> Map.put("whole_db", true)
|
||||||
|
|
||||||
|
activities =
|
||||||
if params["pinned"] == "true" do
|
if params["pinned"] == "true" do
|
||||||
# Since Pleroma has no "pinned" posts feature, we'll just set an empty list here
|
# Since Pleroma has no "pinned" posts feature, we'll just set an empty list here
|
||||||
activities = []
|
[]
|
||||||
else
|
else
|
||||||
activities =
|
|
||||||
ActivityPub.fetch_public_activities(params)
|
ActivityPub.fetch_public_activities(params)
|
||||||
|> Enum.reverse()
|
|> Enum.reverse()
|
||||||
end
|
end
|
||||||
|
|
|
@ -239,12 +239,13 @@ def finger(account) do
|
||||||
URI.parse(account).host
|
URI.parse(account).host
|
||||||
end
|
end
|
||||||
|
|
||||||
|
address =
|
||||||
case find_lrdd_template(domain) do
|
case find_lrdd_template(domain) do
|
||||||
{:ok, template} ->
|
{:ok, template} ->
|
||||||
address = String.replace(template, "{uri}", URI.encode(account))
|
String.replace(template, "{uri}", URI.encode(account))
|
||||||
|
|
||||||
_ ->
|
_ ->
|
||||||
address = "http://#{domain}/.well-known/webfinger?resource=acct:#{account}"
|
"http://#{domain}/.well-known/webfinger?resource=acct:#{account}"
|
||||||
end
|
end
|
||||||
|
|
||||||
with response <-
|
with response <-
|
||||||
|
|
Loading…
Reference in a new issue