mirror of
https://git.pleroma.social/pleroma/pleroma.git
synced 2025-04-07 11:09:50 +00:00
fix: split comparison for acct uri and nickname
This commit is contained in:
parent
02d195f674
commit
57e7ab96e7
1 changed files with 9 additions and 10 deletions
|
@ -460,12 +460,11 @@ defmodule Mix.Tasks.Pleroma.User do
|
|||
with {_, %User{} = before_user} <- {:before, User.get_cached_by_nickname(nickname)},
|
||||
{_, {:ok, %{"ap_id" => ap_id, "subject" => "acct:" <> acct}}} when not is_nil(ap_id) <-
|
||||
{:webfinger, Pleroma.Web.WebFinger.finger(nickname)},
|
||||
{_, true, _, _} <- {:acct_uri_comparison, nickname == acct, ap_id, acct},
|
||||
{_, %User{} = current_user} <- {:current, User.get_cached_by_ap_id(ap_id)},
|
||||
{_, false, false, _, _} <-
|
||||
{:nickname_comparison, nickname == current_user.nickname,
|
||||
acct == current_user.nickname, ap_id, acct},
|
||||
{_, false, _} <-
|
||||
{:ap_id_comparison, before_user.ap_id == current_user.ap_id, current_user.ap_id} do
|
||||
{:ap_id_comparison, before_user.ap_id == current_user.ap_id, current_user.ap_id},
|
||||
{_, false, _} <- {:nickname_comparison, nickname == current_user.nickname, ap_id} do
|
||||
shell_info(
|
||||
"Found an before user for #{nickname}, the before ap id is #{before_user.ap_id}, current one is #{current_user.ap_id}, renaming."
|
||||
)
|
||||
|
@ -484,18 +483,18 @@ defmodule Mix.Tasks.Pleroma.User do
|
|||
{x, _} when x in [:current, :webfinger] ->
|
||||
shell_error("Not found remote users for #{nickname}")
|
||||
|
||||
{:nickname_comparison, true, _, ap_id, _} ->
|
||||
shell_info(
|
||||
"Found a user for #{nickname}, but the ap id #{ap_id} is the same as the current user. Race condition? Not changing anything."
|
||||
)
|
||||
|
||||
{:nickname_comparison, false, true, ap_id, acct} ->
|
||||
{:acct_uri_comparison, false, ap_id, acct} ->
|
||||
shell_info(
|
||||
"Found a user for #{nickname}, but the ap id #{ap_id} is current nickname #{acct}. Not changing anything."
|
||||
)
|
||||
|
||||
{:ap_id_comparison, true, ap_id} ->
|
||||
shell_info("Found a user for #{nickname}. Correct ap id #{ap_id}.")
|
||||
|
||||
{:nickname_comparison, true, ap_id} ->
|
||||
shell_info(
|
||||
"Found a user for #{nickname}, but the ap id #{ap_id} is the same as the current user. Race condition? Not changing anything."
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
Loading…
Reference in a new issue