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
6df6ad0b
Commit
6df6ad0b
authored
Dec 07, 2017
by
lain
Browse files
User deletion: Remove relationships.
parent
a78ae2a6
Pipeline
#401
failed with stage
in 1 minute and 6 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/user.ex
View file @
6df6ad0b
...
...
@@ -339,4 +339,19 @@ def deactivate (%User{} = user) do
cs
=
User
.
info_changeset
(
user
,
%{
info:
new_info
})
Repo
.
update
(
cs
)
end
def
delete
(%
User
{}
=
user
)
do
{
:ok
,
user
}
=
User
.
deactivate
(
user
)
# Remove all relationships
{
:ok
,
followers
}
=
User
.
get_followers
(
user
)
followers
|>
Enum
.
each
(
fn
(
follower
)
->
User
.
unfollow
(
follower
,
user
)
end
)
{
:ok
,
friends
}
=
User
.
get_friends
(
user
)
friends
|>
Enum
.
each
(
fn
(
followed
)
->
User
.
unfollow
(
user
,
followed
)
end
)
:ok
end
end
test/user_test.exs
View file @
6df6ad0b
...
...
@@ -339,4 +339,33 @@ test ".deactivate deactivates a user" do
{
:ok
,
user
}
=
User
.
deactivate
(
user
)
assert
true
==
user
.
info
[
"deactivated"
]
end
test
".delete deactivates a user, all follow relationships and all create activities"
do
user
=
insert
(
:user
)
followed
=
insert
(
:user
)
follower
=
insert
(
:user
)
{
:ok
,
user
}
=
User
.
follow
(
user
,
followed
)
{
:ok
,
follower
}
=
User
.
follow
(
follower
,
user
)
{
:ok
,
activity
}
=
CommonAPI
.
post
(
user
,
%{
"status"
=>
"2hu"
})
{
:ok
,
activity_two
}
=
CommonAPI
.
post
(
follower
,
%{
"status"
=>
"3hu"
})
{
:ok
,
_
,
_
}
=
CommonAPI
.
favorite
(
activity_two
.
id
,
user
)
{
:ok
,
_
,
_
}
=
CommonAPI
.
favorite
(
activity
.
id
,
follower
)
{
:ok
,
_
,
_
}
=
CommonAPI
.
repeat
(
activity
.
id
,
follower
)
:ok
=
User
.
delete
(
user
)
followed
=
Repo
.
get
(
User
,
followed
.
id
)
follower
=
Repo
.
get
(
User
,
follower
.
id
)
user
=
Repo
.
get
(
User
,
user
.
id
)
assert
user
.
info
[
"deactivated"
]
refute
User
.
following?
(
user
,
followed
)
refute
User
.
following?
(
followed
,
follower
)
# TODO: check for activities.
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