diff options
author | Alex Gleason <alex@alexgleason.me> | 2020-12-17 09:04:43 -0600 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2020-12-17 09:05:36 -0600 |
commit | 80891e83d8df25b742a321d2c837e38c805e6582 (patch) | |
tree | 915321403b8a1639fa317b72d438b8a61a0eb090 /lib/pleroma/user.ex | |
parent | 4999efad3f0bb0a70a5be5d5c2b970ab564668ca (diff) | |
parent | 8b8c317c0ff1534d3296369ba315b8919e8dc55c (diff) | |
download | pleroma-80891e83d8df25b742a321d2c837e38c805e6582.tar.gz |
Merge remote-tracking branch 'upstream/develop' into registration-workflow
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r-- | lib/pleroma/user.ex | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 62171078c..5a7704ddb 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -473,6 +473,18 @@ defmodule Pleroma.User do |> validate_length(:bio, max: bio_limit) |> validate_length(:name, max: name_limit) |> validate_fields(true) + |> validate_non_local() + end + + defp validate_non_local(cng) do + local? = get_field(cng, :local) + + if local? do + cng + |> add_error(:local, "User is local, can't update with this changeset.") + else + cng + end end def update_changeset(struct, params \\ %{}) do @@ -914,7 +926,7 @@ defmodule Pleroma.User do if not ap_enabled?(followed) do follow(follower, followed) else - {:ok, follower} + {:ok, follower, followed} end end @@ -940,11 +952,6 @@ defmodule Pleroma.User do true -> FollowingRelationship.follow(follower, followed, state) - - {:ok, _} = update_follower_count(followed) - - follower - |> update_following_count() end end @@ -968,11 +975,6 @@ defmodule Pleroma.User do case get_follow_state(follower, followed) do state when state in [:follow_pending, :follow_accept] -> FollowingRelationship.unfollow(follower, followed) - {:ok, followed} = update_follower_count(followed) - - {:ok, follower} = update_following_count(follower) - - {:ok, follower, followed} nil -> {:error, "Not subscribed!"} @@ -2449,4 +2451,8 @@ defmodule Pleroma.User do |> Map.put(:bio, HTML.filter_tags(user.bio, filter)) |> Map.put(:fields, fields) end + + def get_host(%User{ap_id: ap_id} = _user) do + URI.parse(ap_id).host + end end |