Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Pleroma
pleroma
Commits
be2da95c
Verified
Commit
be2da95c
authored
Jun 29, 2021
by
Alex Gleason
Browse files
Correctly purge a remote user
parent
b221d77a
Changes
2
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/user.ex
View file @
be2da95c
...
@@ -1713,6 +1713,12 @@ def purge_user_changeset(user) do
...
@@ -1713,6 +1713,12 @@ def purge_user_changeset(user) do
})
})
end
end
def
purge
(%
User
{}
=
user
)
do
user
|>
purge_user_changeset
()
|>
update_and_set_cache
()
end
def
delete
(
users
)
when
is_list
(
users
)
do
def
delete
(
users
)
when
is_list
(
users
)
do
for
user
<-
users
,
do
:
delete
(
user
)
for
user
<-
users
,
do
:
delete
(
user
)
end
end
...
@@ -1726,9 +1732,9 @@ defp delete_and_invalidate_cache(%User{} = user) do
...
@@ -1726,9 +1732,9 @@ defp delete_and_invalidate_cache(%User{} = user) do
Repo
.
delete
(
user
)
Repo
.
delete
(
user
)
end
end
defp
delete_or_
deactivat
e
(%
User
{
local:
false
}
=
user
),
do
:
delete_and_invalidate_cach
e
(
user
)
defp
delete_or_
purg
e
(%
User
{
local:
false
}
=
user
),
do
:
purg
e
(
user
)
defp
delete_or_
deactivat
e
(%
User
{
local:
true
}
=
user
)
do
defp
delete_or_
purg
e
(%
User
{
local:
true
}
=
user
)
do
status
=
account_status
(
user
)
status
=
account_status
(
user
)
case
status
do
case
status
do
...
@@ -1739,9 +1745,7 @@ defp delete_or_deactivate(%User{local: true} = user) do
...
@@ -1739,9 +1745,7 @@ defp delete_or_deactivate(%User{local: true} = user) do
delete_and_invalidate_cache
(
user
)
delete_and_invalidate_cache
(
user
)
_
->
_
->
user
purge
(
user
)
|>
purge_user_changeset
()
|>
update_and_set_cache
()
end
end
end
end
...
@@ -1769,7 +1773,7 @@ def perform(:delete, %User{} = user) do
...
@@ -1769,7 +1773,7 @@ def perform(:delete, %User{} = user) do
delete_outgoing_pending_follow_requests
(
user
)
delete_outgoing_pending_follow_requests
(
user
)
delete_or_
deactivat
e
(
user
)
delete_or_
purg
e
(
user
)
end
end
def
perform
(
:set_activation_async
,
user
,
status
),
do
:
set_activation
(
user
,
status
)
def
perform
(
:set_activation_async
,
user
,
status
),
do
:
set_activation
(
user
,
status
)
...
...
test/pleroma/user_test.exs
View file @
be2da95c
...
@@ -1684,6 +1684,24 @@ test "delete/1 purges a user when they wouldn't be fully deleted" do
...
@@ -1684,6 +1684,24 @@ test "delete/1 purges a user when they wouldn't be fully deleted" do
}
=
user
}
=
user
end
end
test
"delete/1 purges a remote user"
do
user
=
insert
(
:user
,
%{
name:
"qqqqqqq"
,
avatar:
%{
"a"
=>
"b"
},
banner:
%{
"a"
=>
"b"
},
local:
false
})
{
:ok
,
job
}
=
User
.
delete
(
user
)
{
:ok
,
_
}
=
ObanHelpers
.
perform
(
job
)
user
=
User
.
get_by_id
(
user
.
id
)
assert
user
.
name
==
nil
assert
user
.
avatar
==
%{}
assert
user
.
banner
==
%{}
end
test
"get_public_key_for_ap_id fetches a user that's not in the db"
do
test
"get_public_key_for_ap_id fetches a user that's not in the db"
do
assert
{
:ok
,
_key
}
=
User
.
get_public_key_for_ap_id
(
"http://mastodon.example.org/users/admin"
)
assert
{
:ok
,
_key
}
=
User
.
get_public_key_for_ap_id
(
"http://mastodon.example.org/users/admin"
)
end
end
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment