瀏覽代碼

Merge branch '2339-local-remote-mixup' into 'develop'

User: Don't allow local users in remote changesets

Closes #2339

See merge request pleroma/pleroma!3185
issue/2315-poll-notify
Haelwenn 3 年之前
父節點
當前提交
05879a3b3e
共有 3 個文件被更改,包括 20 次插入1 次删除
  1. +12
    -0
      lib/pleroma/user.ex
  2. +7
    -0
      test/pleroma/user_test.exs
  3. +1
    -1
      test/pleroma/web/activity_pub/side_effects_test.exs

+ 12
- 0
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


+ 7
- 0
test/pleroma/user_test.exs 查看文件

@@ -895,6 +895,13 @@ defmodule Pleroma.UserTest do
refute cs.valid?
end)
end

test "it is invalid given a local user" do
user = insert(:user)
cs = User.remote_user_changeset(user, %{name: "tom from myspace"})

refute cs.valid?
end
end

describe "followers and friends" do


+ 1
- 1
test/pleroma/web/activity_pub/side_effects_test.exs 查看文件

@@ -108,7 +108,7 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do

describe "update users" do
setup do
user = insert(:user)
user = insert(:user, local: false)
{:ok, update_data, []} = Builder.update(user, %{"id" => user.ap_id, "name" => "new name!"})
{:ok, update, _meta} = ActivityPub.persist(update_data, local: true)



Loading…
取消
儲存