summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorrinpatch <rinpatch@sdf.org>2020-04-07 11:41:10 +0000
committerrinpatch <rinpatch@sdf.org>2020-04-08 00:29:19 +0300
commit94240cac4eb229538020a055cf6fec2b7cb0761f (patch)
tree627dcb0c5fead750bd34f1d8ff5e559ad7e205d0 /lib
parentae937bcaa1477999ef96eb47dcf82d874ecddbab (diff)
downloadpleroma-94240cac4eb229538020a055cf6fec2b7cb0761f.tar.gz
pleroma-94240cac4eb229538020a055cf6fec2b7cb0761f.zip
Merge branch 'fix-auto-link-for-profile-fields' into 'develop'
Use Pleroma.Formatter.linkify/2 instead See merge request pleroma/pleroma!2352
Diffstat (limited to 'lib')
-rw-r--r--lib/pleroma/user.ex20
1 files changed, 8 insertions, 12 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index faba3eb52..0115abed5 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -16,6 +16,7 @@ defmodule Pleroma.User do
alias Pleroma.Conversation.Participation
alias Pleroma.Delivery
alias Pleroma.FollowingRelationship
+ alias Pleroma.Formatter
alias Pleroma.HTML
alias Pleroma.Keys
alias Pleroma.Notification
@@ -441,7 +442,7 @@ defmodule Pleroma.User do
fields =
raw_fields
- |> Enum.map(fn f -> Map.update!(f, "value", &AutoLinker.link(&1)) end)
+ |> Enum.map(fn f -> Map.update!(f, "value", &parse_fields(&1)) end)
changeset
|> put_change(:raw_fields, raw_fields)
@@ -451,6 +452,12 @@ defmodule Pleroma.User do
end
end
+ defp parse_fields(value) do
+ value
+ |> Formatter.linkify(mentions_format: :full)
+ |> elem(0)
+ end
+
defp put_change_if_present(changeset, map_field, value_function) do
if value = get_change(changeset, map_field) do
with {:ok, new_value} <- value_function.(value) do
@@ -1957,17 +1964,6 @@ defmodule Pleroma.User do
def fields(%{fields: fields}), do: fields
- def sanitized_fields(%User{} = user) do
- user
- |> User.fields()
- |> Enum.map(fn %{"name" => name, "value" => value} ->
- %{
- "name" => name,
- "value" => Pleroma.HTML.filter_tags(value, Pleroma.HTML.Scrubber.LinksOnly)
- }
- end)
- end
-
def validate_fields(changeset, remote? \\ false) do
limit_name = if remote?, do: :max_remote_account_fields, else: :max_account_fields
limit = Pleroma.Config.get([:instance, limit_name], 0)