Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F56224947
admin_secret_authentication_plug.ex
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
933 B
Referenced Files
None
Subscribers
None
admin_secret_authentication_plug.ex
View Options
# Pleroma: A lightweight social networking server
# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
# SPDX-License-Identifier: AGPL-3.0-only
defmodule
Pleroma.Plugs.AdminSecretAuthenticationPlug
do
import
Plug.Conn
alias
Pleroma.User
def
init
(
options
)
do
options
end
def
secret_token
do
Pleroma.Config
.
get
(
:admin_token
)
end
def
call
(%{
assigns
:
%{
user
:
%
User
{}}}
=
conn
,
_
),
do
:
conn
def
call
(
conn
,
_
)
do
if
secret_token
()
do
authenticate
(
conn
)
else
conn
end
end
def
authenticate
(%{
params
:
%{
"admin_token"
=>
admin_token
}}
=
conn
)
do
if
admin_token
==
secret_token
()
do
assign
(
conn
,
:user
,
%
User
{
is_admin
:
true
})
else
conn
end
end
def
authenticate
(
conn
)
do
token
=
secret_token
()
case
get_req_header
(
conn
,
"x-admin-token"
)
do
[
^
token
]
->
assign
(
conn
,
:user
,
%
User
{
is_admin
:
true
})
_
->
conn
end
end
end
File Metadata
Details
Attached
Mime Type
text/x-ruby
Expires
Fri, Apr 3, 9:44 PM (19 h, 26 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1227006
Default Alt Text
admin_secret_authentication_plug.ex (933 B)
Attached To
Mode
rPUBE pleroma-upstream
Attached
Detach File
Event Timeline
Log In to Comment