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
6be0ab1e
Commit
6be0ab1e
authored
Dec 02, 2018
by
lain
Browse files
Hide network in ap.
parent
371d96b1
Changes
3
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/user/info.ex
View file @
6be0ab1e
...
...
@@ -24,6 +24,7 @@ defmodule Pleroma.User.Info do
field
(
:topic
,
:string
,
default:
nil
)
field
(
:hub
,
:string
,
default:
nil
)
field
(
:salmon
,
:string
,
default:
nil
)
field
(
:hide_network
,
:boolean
,
default:
false
)
# Found in the wild
# ap_id -> Where is this used?
...
...
lib/pleroma/web/activity_pub/views/user_view.ex
View file @
6be0ab1e
...
...
@@ -82,7 +82,7 @@ def render("following.json", %{user: user, page: page}) do
query
=
from
(
user
in
query
,
select:
[
:ap_id
])
following
=
Repo
.
all
(
query
)
collection
(
following
,
"
#{
user
.
ap_id
}
/following"
,
page
)
collection
(
following
,
"
#{
user
.
ap_id
}
/following"
,
page
,
!user
.
info
.
hide_network
)
|>
Map
.
merge
(
Utils
.
make_json_ld_header
())
end
...
...
@@ -95,7 +95,7 @@ def render("following.json", %{user: user}) do
"id"
=>
"
#{
user
.
ap_id
}
/following"
,
"type"
=>
"OrderedCollection"
,
"totalItems"
=>
length
(
following
),
"first"
=>
collection
(
following
,
"
#{
user
.
ap_id
}
/following"
,
1
)
"first"
=>
collection
(
following
,
"
#{
user
.
ap_id
}
/following"
,
1
,
!user
.
info
.
hide_network
)
}
|>
Map
.
merge
(
Utils
.
make_json_ld_header
())
end
...
...
@@ -105,7 +105,7 @@ def render("followers.json", %{user: user, page: page}) do
query
=
from
(
user
in
query
,
select:
[
:ap_id
])
followers
=
Repo
.
all
(
query
)
collection
(
followers
,
"
#{
user
.
ap_id
}
/followers"
,
page
)
collection
(
followers
,
"
#{
user
.
ap_id
}
/followers"
,
page
,
!user
.
info
.
hide_network
)
|>
Map
.
merge
(
Utils
.
make_json_ld_header
())
end
...
...
@@ -118,7 +118,7 @@ def render("followers.json", %{user: user}) do
"id"
=>
"
#{
user
.
ap_id
}
/followers"
,
"type"
=>
"OrderedCollection"
,
"totalItems"
=>
length
(
followers
),
"first"
=>
collection
(
followers
,
"
#{
user
.
ap_id
}
/followers"
,
1
)
"first"
=>
collection
(
followers
,
"
#{
user
.
ap_id
}
/followers"
,
1
,
!user
.
info
.
hide_network
)
}
|>
Map
.
merge
(
Utils
.
make_json_ld_header
())
end
...
...
@@ -172,7 +172,7 @@ def render("outbox.json", %{user: user, max_id: max_qid}) do
end
end
def
collection
(
collection
,
iri
,
page
,
total
\\
nil
)
do
def
collection
(
collection
,
iri
,
page
,
show_items
\\
true
,
total
\\
nil
)
do
offset
=
(
page
-
1
)
*
10
items
=
Enum
.
slice
(
collection
,
offset
,
10
)
items
=
Enum
.
map
(
items
,
fn
user
->
user
.
ap_id
end
)
...
...
@@ -183,7 +183,7 @@ def collection(collection, iri, page, total \\ nil) do
"type"
=>
"OrderedCollectionPage"
,
"partOf"
=>
iri
,
"totalItems"
=>
total
,
"orderedItems"
=>
i
tems
"orderedItems"
=>
i
f
(
show_items
,
do
:
items
,
else
:
[])
}
if
offset
<
total
do
...
...
test/web/activity_pub/activity_pub_controller_test.exs
View file @
6be0ab1e
...
...
@@ -145,6 +145,20 @@ test "it returns the followers in a collection", %{conn: conn} do
assert
result
[
"first"
][
"orderedItems"
]
==
[
user
.
ap_id
]
end
test
"it returns returns empty if the user has 'hide_network' set"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
user_two
=
insert
(
:user
,
%{
info:
%{
hide_network:
true
}})
User
.
follow
(
user
,
user_two
)
result
=
conn
|>
get
(
"/users/
#{
user_two
.
nickname
}
/followers"
)
|>
json_response
(
200
)
assert
result
[
"first"
][
"orderedItems"
]
==
[]
assert
result
[
"totalItems"
]
==
1
end
test
"it works for more than 10 users"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
...
...
@@ -186,6 +200,20 @@ test "it returns the following in a collection", %{conn: conn} do
assert
result
[
"first"
][
"orderedItems"
]
==
[
user_two
.
ap_id
]
end
test
"it returns returns empty if the user has 'hide_network' set"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
,
%{
info:
%{
hide_network:
true
}})
user_two
=
insert
(
:user
)
User
.
follow
(
user
,
user_two
)
result
=
conn
|>
get
(
"/users/
#{
user
.
nickname
}
/following"
)
|>
json_response
(
200
)
assert
result
[
"first"
][
"orderedItems"
]
==
[]
assert
result
[
"totalItems"
]
==
1
end
test
"it works for more than 10 users"
,
%{
conn:
conn
}
do
user
=
insert
(
:user
)
...
...
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