diff options
author | Ivan Tashkinov <ivantashkinov@gmail.com> | 2019-10-20 20:43:18 +0300 |
---|---|---|
committer | Ivan Tashkinov <ivantashkinov@gmail.com> | 2019-10-20 20:43:18 +0300 |
commit | c6fdfbc4f14b855d9cdf2d757ff2c43282aabe90 (patch) | |
tree | ba8cab33d76b3961ad1080f307bc2aedf1e9cc10 /lib/pleroma/user.ex | |
parent | b4cbf0568bd6924ded9b9fbdb588a4da92bf83e7 (diff) | |
parent | 62e3d76a450c1b34ba8d0c88a184ec861ed90f29 (diff) | |
download | pleroma-c6fdfbc4f14b855d9cdf2d757ff2c43282aabe90.tar.gz |
Merge remote-tracking branch 'remotes/upstream/develop' into 1304-user-info-deprecation
# Conflicts:
# CHANGELOG.md
# lib/pleroma/notification.ex
# lib/pleroma/user.ex
# lib/pleroma/user/info.ex
# lib/pleroma/web/activity_pub/activity_pub.ex
# lib/pleroma/web/admin_api/admin_api_controller.ex
# lib/pleroma/web/ostatus/handlers/follow_handler.ex
# lib/pleroma/web/ostatus/ostatus.ex
# lib/pleroma/web/salmon/salmon.ex
# lib/pleroma/web/websub/websub.ex
# test/web/admin_api/admin_api_controller_test.exs
# test/web/federator_test.exs
# test/web/mastodon_api/controllers/conversation_controller_test.exs
# test/web/ostatus/ostatus_controller_test.exs
# test/web/ostatus/ostatus_test.exs
# test/web/salmon/salmon_test.exs
# test/web/websub/websub_test.exs
Diffstat (limited to 'lib/pleroma/user.ex')
-rw-r--r-- | lib/pleroma/user.ex | 47 |
1 files changed, 16 insertions, 31 deletions
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 282cf6962..e2ebb7d64 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -26,9 +26,7 @@ defmodule Pleroma.User do alias Pleroma.Web.CommonAPI alias Pleroma.Web.CommonAPI.Utils, as: CommonUtils alias Pleroma.Web.OAuth - alias Pleroma.Web.OStatus alias Pleroma.Web.RelMe - alias Pleroma.Web.Websub alias Pleroma.Workers.BackgroundWorker require Logger @@ -620,10 +618,6 @@ defmodule Pleroma.User do {:error, "Could not follow user: #{followed.nickname} blocked you."} true -> - if !followed.local && follower.local && !ap_enabled?(followed) do - Websub.subscribe(follower, followed) - end - q = from(u in User, where: u.id == ^follower.id, @@ -803,12 +797,7 @@ defmodule Pleroma.User do Cachex.fetch!(:user_cache, key, fn -> user_info(user) end) end - def fetch_by_nickname(nickname) do - case ActivityPub.make_user_from_nickname(nickname) do - {:ok, user} -> {:ok, user} - _ -> OStatus.make_user(nickname) - end - end + def fetch_by_nickname(nickname), do: ActivityPub.make_user_from_nickname(nickname) def get_or_fetch_by_nickname(nickname) do with %User{} = user <- get_by_nickname(nickname) do @@ -1209,7 +1198,15 @@ defmodule Pleroma.User do BackgroundWorker.enqueue("deactivate_user", %{"user_id" => user.id, "status" => status}) end - def deactivate(%User{} = user, status \\ true) do + def deactivate(user, status \\ true) + + def deactivate(users, status) when is_list(users) do + Repo.transaction(fn -> + for user <- users, do: deactivate(user, status) + end) + end + + def deactivate(%User{} = user, status) do with {:ok, user} <- set_activation_status(user, status) do Enum.each(get_followers(user), &invalidate_cache/1) Enum.each(get_friends(user), &update_follower_count/1) @@ -1237,6 +1234,10 @@ defmodule Pleroma.User do |> update_and_set_cache() end + def delete(users) when is_list(users) do + for user <- users, do: delete(user) + end + def delete(%User{} = user) do BackgroundWorker.enqueue("delete_user", %{"user_id" => user.id}) end @@ -1399,18 +1400,7 @@ defmodule Pleroma.User do def html_filter_policy(_), do: Pleroma.Config.get([:markup, :scrub_policy]) - def fetch_by_ap_id(ap_id) do - case ActivityPub.make_user_from_ap_id(ap_id) do - {:ok, user} -> - {:ok, user} - - _ -> - case OStatus.make_user(ap_id) do - {:ok, user} -> {:ok, user} - _ -> {:error, "Could not fetch by AP id"} - end - end - end + def fetch_by_ap_id(ap_id), do: ActivityPub.make_user_from_ap_id(ap_id) def get_or_fetch_by_ap_id(ap_id) do user = get_cached_by_ap_id(ap_id) @@ -1463,12 +1453,7 @@ defmodule Pleroma.User do {:ok, key} end - # OStatus Magic Key - def public_key(%{magic_key: magic_key}) when not is_nil(magic_key) do - {:ok, Pleroma.Web.Salmon.decode_key(magic_key)} - end - - def public_key(_), do: {:error, "not found key"} + def public_key_from_info(_), do: {:error, "not found key"} def get_public_key_for_ap_id(ap_id) do with {:ok, %User{} = user} <- get_or_fetch_by_ap_id(ap_id), |