Skip to content
GitLab
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
6a5f0871
Commit
6a5f0871
authored
Nov 02, 2017
by
lain
Browse files
Add blocks to User.
parent
345ad870
Changes
2
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/user.ex
View file @
6a5f0871
...
...
@@ -293,4 +293,28 @@ def search(query, resolve) do
limit:
20
Repo
.
all
(
q
)
end
def
block
(
user
,
%{
ap_id:
ap_id
})
do
blocks
=
user
.
info
[
"blocks"
]
||
[]
new_blocks
=
Enum
.
uniq
([
ap_id
|
blocks
])
new_info
=
Map
.
put
(
user
.
info
,
"blocks"
,
new_blocks
)
cs
=
User
.
info_changeset
(
user
,
%{
info:
new_info
})
Repo
.
update
(
cs
)
end
def
unblock
(
user
,
%{
ap_id:
ap_id
})
do
blocks
=
user
.
info
[
"blocks"
]
||
[]
new_blocks
=
List
.
delete
(
blocks
,
ap_id
)
new_info
=
Map
.
put
(
user
.
info
,
"blocks"
,
new_blocks
)
cs
=
User
.
info_changeset
(
user
,
%{
info:
new_info
})
Repo
.
update
(
cs
)
end
def
blocks?
(
user
,
%{
ap_id:
ap_id
})
do
blocks
=
user
.
info
[
"blocks"
]
||
[]
Enum
.
member?
(
blocks
,
ap_id
)
end
end
test/user_test.exs
View file @
6a5f0871
...
...
@@ -273,5 +273,28 @@ test "it sets the info->follower_count property" do
assert
user
.
info
[
"follower_count"
]
==
1
end
end
describe
"blocks"
do
test
"it blocks people"
do
user
=
insert
(
:user
)
blocked_user
=
insert
(
:user
)
refute
User
.
blocks?
(
user
,
blocked_user
)
{
:ok
,
user
}
=
User
.
block
(
user
,
blocked_user
)
assert
User
.
blocks?
(
user
,
blocked_user
)
end
test
"it unblocks users"
do
user
=
insert
(
:user
)
blocked_user
=
insert
(
:user
)
{
:ok
,
user
}
=
User
.
block
(
user
,
blocked_user
)
{
:ok
,
user
}
=
User
.
unblock
(
user
,
blocked_user
)
refute
User
.
blocks?
(
user
,
blocked_user
)
end
end
end
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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