Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F33102475
relay_controller.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
relay_controller.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.AdminAPI.RelayController
do
use
Pleroma.Web
,
:controller
alias
Pleroma.ModerationLog
alias
Pleroma.Web.ActivityPub.Relay
alias
Pleroma.Web.Plugs.OAuthScopesPlug
require
Logger
plug
(
Pleroma.Web.ApiSpec.CastAndValidate
,
replace_params
:
false
)
plug
(
OAuthScopesPlug
,
%{
scopes
:
[
"admin:write:follows"
]}
when
action
in
[
:follow
,
:unfollow
]
)
plug
(
OAuthScopesPlug
,
%{
scopes
:
[
"admin:read"
]}
when
action
==
:index
)
action_fallback
(
Pleroma.Web.AdminAPI.FallbackController
)
defdelegate
open_api_operation
(
action
),
to
:
Pleroma.Web.ApiSpec.Admin.RelayOperation
def
index
(
conn
,
_params
)
do
with
{
:ok
,
list
}
<-
Relay
.
list
()
do
json
(
conn
,
%{
relays
:
list
})
end
end
def
follow
(
%{
assigns
:
%{
user
:
admin
},
private
:
%{
open_api_spex
:
%{
body_params
:
%{
relay_url
:
target
}}}
}
=
conn
,
_
)
do
with
{
:ok
,
_message
}
<-
Relay
.
follow
(
target
)
do
ModerationLog
.
insert_log
(%{
action
:
"relay_follow"
,
actor
:
admin
,
target
:
target
})
json
(
conn
,
%{
actor
:
target
,
followed_back
:
target
in
Relay
.
following
()})
else
_
->
conn
|>
put_status
(
500
)
|>
json
(
target
)
end
end
def
unfollow
(
%{
assigns
:
%{
user
:
admin
},
private
:
%{
open_api_spex
:
%{
body_params
:
%{
relay_url
:
target
}
=
params
}}
}
=
conn
,
_
)
do
with
{
:ok
,
_message
}
<-
Relay
.
unfollow
(
target
,
%{
force
:
params
[
:force
]})
do
ModerationLog
.
insert_log
(%{
action
:
"relay_unfollow"
,
actor
:
admin
,
target
:
target
})
json
(
conn
,
target
)
else
_
->
conn
|>
put_status
(
500
)
|>
json
(
target
)
end
end
end
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Tue, Jan 20, 1:08 PM (6 h, 30 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
973661
Default Alt Text
relay_controller.ex (1 KB)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment