Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F33103321
reject_non_public.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
reject_non_public.ex
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2022 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Web.ActivityPub.MRF.RejectNonPublic
do
@moduledoc
"Rejects non-public (followers-only, direct) activities"
alias
Pleroma.Config
alias
Pleroma.User
@behaviour
Pleroma.Web.ActivityPub.MRF.Policy
require
Pleroma.Constants
@impl
true
def
filter
(%{
"type"
=>
"Create"
}
=
object
)
do
user
=
User
.
get_cached_by_ap_id
(
object
[
"actor"
])
# Determine visibility
visibility
=
cond
do
Pleroma.Constants
.
as_public
()
in
object
[
"to"
]
->
"public"
Pleroma.Constants
.
as_public
()
in
object
[
"cc"
]
->
"unlisted"
user
.
follower_address
in
object
[
"to"
]
->
"followers"
true
->
"direct"
end
policy
=
Config
.
get
(
:mrf_rejectnonpublic
)
cond
do
visibility
in
[
"public"
,
"unlisted"
]
->
{
:ok
,
object
}
visibility
==
"followers"
and
Keyword
.
get
(
policy
,
:allow_followersonly
)
->
{
:ok
,
object
}
visibility
==
"direct"
and
Keyword
.
get
(
policy
,
:allow_direct
)
->
{
:ok
,
object
}
true
->
{
:reject
,
"[RejectNonPublic] visibility:
#{
visibility
}
"
}
end
end
@impl
true
def
filter
(
object
),
do
:
{
:ok
,
object
}
@impl
true
def
describe
,
do
:
{
:ok
,
%{
mrf_rejectnonpublic
:
Config
.
get
(
:mrf_rejectnonpublic
)
|>
Map
.
new
()}}
@impl
true
def
config_description
do
%{
key
:
:mrf_rejectnonpublic
,
related_policy
:
"Pleroma.Web.ActivityPub.MRF.RejectNonPublic"
,
description
:
"RejectNonPublic drops posts with non-public visibility settings."
,
label
:
"MRF Reject Non Public"
,
children
:
[
%{
key
:
:allow_followersonly
,
label
:
"Allow followers-only"
,
type
:
:boolean
,
description
:
"Whether to allow followers-only posts"
},
%{
key
:
:allow_direct
,
type
:
:boolean
,
description
:
"Whether to allow direct messages"
}
]
}
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Tue, Jan 20, 1:35 PM (13 h, 31 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
973739
Default Alt Text
reject_non_public.ex (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment