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
39031f48
Commit
39031f48
authored
May 20, 2020
by
lain
Browse files
Pipeline: Don't federate if federation is disabled.
parent
e42bc5f5
Pipeline
#26142
failed with stages
in 2 minutes and 57 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
lib/pleroma/web/activity_pub/pipeline.ex
View file @
39031f48
...
...
@@ -11,6 +11,7 @@ defmodule Pleroma.Web.ActivityPub.Pipeline do
alias
Pleroma
.
Web
.
ActivityPub
.
ObjectValidator
alias
Pleroma
.
Web
.
ActivityPub
.
SideEffects
alias
Pleroma
.
Web
.
Federator
alias
Pleroma
.
Config
@spec
common_pipeline
(
map
(),
keyword
())
::
{
:ok
,
Activity
.
t
()
|
Object
.
t
(),
keyword
()}
|
{
:error
,
any
()}
...
...
@@ -44,7 +45,7 @@ defp maybe_federate(%Object{}, _), do: {:ok, :not_federated}
defp
maybe_federate
(%
Activity
{}
=
activity
,
meta
)
do
with
{
:ok
,
local
}
<-
Keyword
.
fetch
(
meta
,
:local
)
do
do_not_federate
=
meta
[
:do_not_federate
]
do_not_federate
=
meta
[
:do_not_federate
]
||
!Config
.
get
([
:instance
,
:federating
])
if
!do_not_federate
&&
local
do
Federator
.
publish
(
activity
)
...
...
test/web/activity_pub/pipeline_test.exs
View file @
39031f48
...
...
@@ -9,6 +9,11 @@ defmodule Pleroma.Web.ActivityPub.PipelineTest do
import
Pleroma
.
Factory
describe
"common_pipeline/2"
do
setup
do
clear_config
([
:instance
,
:federating
],
true
)
:ok
end
test
"it goes through validation, filtering, persisting, side effects and federation for local activities"
do
activity
=
insert
(
:note_activity
)
meta
=
[
local:
true
]
...
...
@@ -83,5 +88,44 @@ test "it goes through validation, filtering, persisting, side effects without fe
assert_called
(
Pleroma
.
Web
.
ActivityPub
.
SideEffects
.
handle
(
activity
,
meta
))
end
end
test
"it goes through validation, filtering, persisting, side effects without federation for local activities if federation is deactivated"
do
clear_config
([
:instance
,
:federating
],
false
)
activity
=
insert
(
:note_activity
)
meta
=
[
local:
true
]
with_mocks
([
{
Pleroma
.
Web
.
ActivityPub
.
ObjectValidator
,
[],
[
validate:
fn
o
,
m
->
{
:ok
,
o
,
m
}
end
]},
{
Pleroma
.
Web
.
ActivityPub
.
MRF
,
[],
[
filter:
fn
o
->
{
:ok
,
o
}
end
]
},
{
Pleroma
.
Web
.
ActivityPub
.
ActivityPub
,
[],
[
persist:
fn
o
,
m
->
{
:ok
,
o
,
m
}
end
]
},
{
Pleroma
.
Web
.
ActivityPub
.
SideEffects
,
[],
[
handle:
fn
o
,
m
->
{
:ok
,
o
,
m
}
end
]
},
{
Pleroma
.
Web
.
Federator
,
[],
[]
}
])
do
assert
{
:ok
,
^
activity
,
^
meta
}
=
Pleroma
.
Web
.
ActivityPub
.
Pipeline
.
common_pipeline
(
activity
,
meta
)
assert_called
(
Pleroma
.
Web
.
ActivityPub
.
ObjectValidator
.
validate
(
activity
,
meta
))
assert_called
(
Pleroma
.
Web
.
ActivityPub
.
MRF
.
filter
(
activity
))
assert_called
(
Pleroma
.
Web
.
ActivityPub
.
ActivityPub
.
persist
(
activity
,
meta
))
assert_called
(
Pleroma
.
Web
.
ActivityPub
.
SideEffects
.
handle
(
activity
,
meta
))
end
end
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