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
cb7be6ee
Commit
cb7be6ee
authored
Jun 10, 2020
by
href
Committed by
rinpatch
Jun 13, 2020
Browse files
Remove use of atoms in MRF.UserAllowListPolicy
parent
520367d6
Pipeline
#27195
passed with stages
in 67 minutes and 13 seconds
Changes
5
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
config/description.exs
View file @
cb7be6ee
...
...
@@ -1623,14 +1623,12 @@
# %{
# group: :pleroma,
# key: :mrf_user_allowlist,
# type: :
grou
p,
# type: :
ma
p,
# description:
# "The keys in this section are the domain names that the policy should apply to." <>
# " Each key should be assigned a list of users that should be allowed through by their ActivityPub ID",
# children: [
# ["example.org": ["https://example.org/users/admin"]],
# suggestions: [
#
[
"example.org"
:
["https://example.org/users/admin"]
]
#
%{
"example.org"
=>
["https://example.org/users/admin"]
}
# ]
# ]
# },
...
...
docs/configuration/cheatsheet.md
View file @
cb7be6ee
...
...
@@ -138,8 +138,9 @@ their ActivityPub ID.
An example:
```
elixir
config
:pleroma
,
:mrf_user_allowlist
,
"example.org"
:
[
"https://example.org/users/admin"
]
config
:pleroma
,
:mrf_user_allowlist
,
%{
"example.org"
=>
[
"https://example.org/users/admin"
]
}
```
#### :mrf_object_age
...
...
lib/pleroma/config/deprecation_warnings.ex
View file @
cb7be6ee
...
...
@@ -4,9 +4,10 @@
defmodule
Pleroma
.
Config
.
DeprecationWarnings
do
require
Logger
alias
Pleroma
.
Config
def
check_hellthread_threshold
do
if
Pleroma
.
Config
.
get
([
:mrf_hellthread
,
:threshold
])
do
if
Config
.
get
([
:mrf_hellthread
,
:threshold
])
do
Logger
.
warn
(
"""
!!!DEPRECATION WARNING!!!
You are using the old configuration mechanism for the hellthread filter. Please check config.md.
...
...
@@ -14,7 +15,29 @@ def check_hellthread_threshold do
end
end
def
mrf_user_allowlist
do
config
=
Config
.
get
(
:mrf_user_allowlist
)
if
config
&&
Enum
.
any?
(
config
,
fn
{
k
,
_
}
->
is_atom
(
k
)
end
)
do
rewritten
=
Enum
.
reduce
(
Config
.
get
(
:mrf_user_allowlist
),
Map
.
new
(),
fn
{
k
,
v
},
acc
->
Map
.
put
(
acc
,
to_string
(
k
),
v
)
end
)
Config
.
put
(
:mrf_user_allowlist
,
rewritten
)
Logger
.
error
(
"""
!!!DEPRECATION WARNING!!!
As of Pleroma 2.0.7, the `mrf_user_allowlist` setting changed of format.
Pleroma 2.1 will remove support for the old format. Please change your configuration to match this:
config :pleroma, :mrf_user_allowlist, #{inspect(rewritten, pretty: true)}
"""
)
end
end
def
warn
do
check_hellthread_threshold
()
mrf_user_allowlist
()
end
end
lib/pleroma/web/activity_pub/mrf/user_allow_list_policy.ex
View file @
cb7be6ee
...
...
@@ -24,7 +24,7 @@ def filter(%{"actor" => actor} = object) do
allow_list
=
Config
.
get
(
[
:mrf_user_allowlist
,
String
.
to_atom
(
actor_info
.
host
)
],
[
:mrf_user_allowlist
,
actor_info
.
host
],
[]
)
...
...
test/web/activity_pub/mrf/user_allowlist_policy_test.exs
View file @
cb7be6ee
...
...
@@ -7,7 +7,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.UserAllowListPolicyTest do
alias
Pleroma
.
Web
.
ActivityPub
.
MRF
.
UserAllowListPolicy
setup
do
:
clear_config
(
[
:mrf_user_allowlist
,
:localhost
]
)
setup
do
:
clear_config
(
:mrf_user_allowlist
)
test
"pass filter if allow list is empty"
do
actor
=
insert
(
:user
)
...
...
@@ -17,14 +17,14 @@ test "pass filter if allow list is empty" do
test
"pass filter if allow list isn't empty and user in allow list"
do
actor
=
insert
(
:user
)
Pleroma
.
Config
.
put
([
:mrf_user_allowlist
,
:
localhost
],
[
actor
.
ap_id
,
"test-ap-id"
])
Pleroma
.
Config
.
put
([
:mrf_user_allowlist
]
,
%{
"
localhost
"
=>
[
actor
.
ap_id
,
"test-ap-id"
]
}
)
message
=
%{
"actor"
=>
actor
.
ap_id
}
assert
UserAllowListPolicy
.
filter
(
message
)
==
{
:ok
,
message
}
end
test
"rejected if allow list isn't empty and user not in allow list"
do
actor
=
insert
(
:user
)
Pleroma
.
Config
.
put
([
:mrf_user_allowlist
,
:
localhost
],
[
"test-ap-id"
])
Pleroma
.
Config
.
put
([
:mrf_user_allowlist
]
,
%{
"
localhost
"
=>
[
"test-ap-id"
]
}
)
message
=
%{
"actor"
=>
actor
.
ap_id
}
assert
UserAllowListPolicy
.
filter
(
message
)
==
{
:reject
,
nil
}
end
...
...
Write
Preview
Markdown
is supported
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